Reguły WordPress mają też wyjątki

Wordpress apache

Wordpress apacheWordPress 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ą, to w porządku. Możesz pominąć ten artykuł. Ale dla moich kolegów techno-geeków, koderów i maniaków apache, chcę podzielić się czymś interesującym i fajnym.

Wiele witryn to funkcja, która umożliwia uruchamianie dowolnej liczby witryn WordPress za pomocą jednej instalacji WordPress. Jeśli administrujesz wieloma witrynami, jest to miłe, ponieważ możesz zainstalować zatwierdzoną grupę motywów i widżetów oraz aktywować je dla witryn swoich klientów. Mapowanie domen wiąże się z kilkoma przeszkodami technicznymi, ale proces ten nie jest trudny.

Jednym z obszarów problemowych, które zidentyfikowałem, jest dostosowywanie kompozycji. Ponieważ motywy można udostępniać w wielu witrynach internetowych, wszelkie dostosowania motywu będą miały również wpływ na inne witryny korzystające z tego motywu podczas instalacji w wielu witrynach. Moim sposobem obejścia tego jest zduplikowanie motywu przed rozpoczęciem dostosowywania i wyraźne nazwanie motywu dla witryny klienta, dla której go tworzę.

Inną interesującą kwestią jest to, co dzieje się w pliku .htaccess na serwerze Apache. WordPress musi przepisać ścieżki na zasadzie blog po blogu i robi to za pomocą reguły przepisywania i pliku php.

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

RewriteRule ^ ([_ 0-9a-zA-Z -] + /)? Files /(.+) wp-include / ms-files.php? File = $ 2 [L]

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-include / ms-files.php? File = $ 2 [L]

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.

Co o tym myślisz?

Ta strona używa Akismet do redukcji spamu. Dowiedz się, jak przetwarzane są dane komentarza.