Marketing treści

Reguły .htaccess WordPress też mają wyjątki

WordPress poczynił znaczący krok w ewolucji na platformie blogowej, przybliżając go do pełnoprawnego systemu zarządzania treścią ze śledzeniem zmian, większą obsługą niestandardowych menu i - co jest dla mnie najbardziej intrygującą funkcją - obsługą wielu witryn z mapowaniem domen.

Jeśli nie jesteś ćpunem systemu zarządzania treścią, nie ma problemu. Możesz pominąć ten artykuł. Ale dla moich kolegów techno-maniaków, koderów i amatorów Apache, chcę podzielić się czymś interesującym i czymś fajnym.

Multi-site to funkcja, która umożliwia uruchamianie dowolnej liczby witryn WordPress za pomocą jednej instalacji WordPress. Jeśli administrujesz wieloma witrynami, jest to wygodne, ponieważ możesz zainstalować zatwierdzoną grupę motywów i widżetów i aktywować je dla witryn klientów. Istnieje kilka technicznych przeszkód związanych z mapowaniem domen, ale proces ten nie jest trudny.

Jednym z zidentyfikowanych przeze mnie obszarów problemowych jest dostosowywanie motywu. Ponieważ motywy można udostępniać wielu witrynom, wszelkie dostosowania motywu będą miały również wpływ na inne witryny korzystające z tego motywu w instalacji na wielu witrynach. Moim sposobem na obejście tego problemu jest zduplikowanie motywu przed rozpoczęciem dostosowywania i wyraźne nazwanie motywu dla witryny klienta, dla której go stylizuję.

Innym ciekawym zagadnieniem jest to, co dzieje się w tzw .htaccess plik na swoim serwerze Apache. WordPress musi przepisywać ścieżki dla poszczególnych blogów i robi to z regułą przepisywania i php plik.

WordPress używa następującej reguły przepisywania:

RewriteRule ^([_0-9a-zA-Z-]+/)?files/(.+) wp-includes/ms-files.php?file=$2 [L]

Zepsuty, co oznacza:

  1. RewriteRule – Ta dyrektywa mówi Apache’owi, że jest to reguła przepisywania.
  2. ^([_0-9a-zA-Z-]+/)? – To jest wyrażenie regularne (RegEx), który pasuje do ciągu znaków rozpoczynającego się opcjonalnym ciągiem znaków alfanumerycznych i łączników, po których następuje ukośnik. Nawiasy wskazują grupę przechwytywania, co oznacza, że ​​dopasowany tekst może zostać użyty w ciągu zastępczym.
  3. files/ – To pasuje do ciągu „files/”.
  4. (.+) – To kolejna grupa przechwytywania, która pasuje do dowolnego ciągu znaków, jeden lub więcej razy.
  5. wp-includes/ms-files.php?file=$2 – To jest łańcuch zastępczy, który zastępuje dopasowany ciąg. Mówi Apache, aby przekierował żądanie do „wp-includes/ms-files.php”, z wartością drugiej grupy przechwytywania ($2) jako parametrem zapytania o nazwie „plik”.
  6. [L] – Jest to flaga, która mówi Apache, aby przestał przetwarzać dalsze reguły, jeśli ta reguła jest zgodna.

Zasadniczo wszystko, co znajduje się w podkatalogu mysite.com/files/directory, zostaje przepisane do mysite.com/files/wp-includes/myblogfolderpath… i tutaj staje się interesujące. Co się stanie, jeśli rzeczywiście potrzebujesz pliku na swoim serwerze, który nazywa się mysite.com/files/myfolder/myimage.jpg? Pojawia się błąd 404, tak się dzieje. Wchodzi reguła przepisywania Apache i zmienia ścieżkę.

To prawda, możesz nigdy nie napotkać tego problemu, ale ja tak. Miałem witrynę, która potrzebowała widżetu javascript z innej witryny i musiała znaleźć grafikę pod adresem mysite.com/files/Images/myfile. Ponieważ nie było możliwości zmiany pliku w witrynie hosta, musiałem znaleźć sposób, aby to zrobić na moim serwerze. Łatwym rozwiązaniem jest utworzenie warunku ponownego zapisu, który stanowi wyjątek dla określonych plików.

Oto rozwiązanie:

RewriteCond %{REQUEST_URI} !/?files/Image/file1.jpg$
RewriteCond %{REQUEST_URI} !/?files/Image/file2.jpg$
RewriteRule ^([_0-9a-zA-Z-]+/)?files/(.+) wp-includes/ms-files.php?file=$2 [L]

Zepsuty:

Linia 1:

  1. RewriteCond – Ta dyrektywa informuje Apache, że jest to reguła RewriteCond.
  2. %{REQUEST_URI} – Jest to zmienna serwerowa zawierająca ścieżkę żądanego identyfikatora URI.
  3. ! – To jest operator negacji, który oznacza „nie”. Służy do odwrócenia warunku.
  4. /?files/Image/file1.jpg$ – Jest to wyrażenie regularne pasujące dokładnie do ciągu „/files/Image/file1.jpg” na końcu żądanego identyfikatora URI. Znak zapytania i ukośnik przed „plikami” powodują, że ukośnik wiodący jest opcjonalny.

Linia 2:

  1. RewriteCond – Ta dyrektywa informuje Apache, że jest to reguła RewriteCond.
  2. %{REQUEST_URI} – Jest to zmienna serwerowa zawierająca ścieżkę żądanego identyfikatora URI.
  3. ! – To jest operator negacji, który oznacza „nie”. Służy do odwrócenia warunku.
  4. /?files/Image/file2.jpg$ – Jest to wyrażenie regularne pasujące dokładnie do ciągu „/files/Image/file2.jpg” na końcu żądanego identyfikatora URI. Znak zapytania i ukośnik przed „plikami” powodują, że ukośnik wiodący jest opcjonalny.

Linia 3:

  1. RewriteRule – Ta dyrektywa mówi Apache’owi, że jest to reguła przepisywania.
  2. ^([_0-9a-zA-Z-]+/)? – Jest to wyrażenie regularne dopasowujące ciąg znaków rozpoczynający się opcjonalnym ciągiem znaków alfanumerycznych i łączników, po których następuje ukośnik. Nawiasy wskazują grupę przechwytywania, co oznacza, że ​​dopasowany tekst może zostać użyty w ciągu zastępczym.
  3. files/ – To pasuje do ciągu „files/”.
  4. (.+) – To kolejna grupa przechwytywania, która pasuje do dowolnego ciągu znaków, jeden lub więcej razy.
  5. wp-includes/ms-files.php?file=$2 – To jest łańcuch zastępczy, który zastępuje dopasowany ciąg. Mówi Apache, aby przekierował żądanie do „wp-includes/ms-files.php”, z wartością drugiej grupy przechwytywania ($2) jako parametrem zapytania o nazwie „plik”.
  6. [L] – Jest to flaga, która mówi Apache, aby przestał przetwarzać dalsze reguły, jeśli ta reguła jest zgodna.

Warunki przepisywania muszą być umieszczone przed regułą przepisywania, w przeciwnym razie ta sztuczka nie zadziała. Powinno być łatwo zmodyfikować ten warunek do własnych celów, jeśli napotkasz podobny problem. Rozwiązanie zadziałało dla mnie świetnie, pozwalając mi zastąpić niestandardową grafikę zamiast mniej pożądanego tekstu alternatywnego, który nie pasował do mojego projektu. Miejmy nadzieję, że to zadziała również dla Ciebie.

Tima Piazza

Tim Piazza jest partnerem w Social LIfe Marketing i założycielem ProSocialTools.com, narzędzia dla małych firm umożliwiającego docieranie do lokalnych klientów za pomocą mediów społecznościowych i marketingu mobilnego. Kiedy nie tworzy innowacyjnych rozwiązań przyspieszających procesy biznesowe, Tim lubi grać na mandolinie i tworzyć meble.

Powiązane artykuły

Powrót do góry przycisk
Zamknij

Wykryto Adblock

Martech Zone jest w stanie udostępnić Ci te treści bez żadnych kosztów, ponieważ zarabiamy na naszej witrynie poprzez przychody z reklam, linki partnerskie i sponsoring. Będziemy wdzięczni za usunięcie blokady reklam podczas przeglądania naszej witryny.