WordPress-regels hebben ook uitzonderingen

wordpress apache

wordpress apacheWordPress heeft een belangrijke evolutionaire stap voorwaarts gemaakt in het blogplatform, door het dichter bij een volwaardig contentmanagementsysteem te brengen met revisietracking, meer ondersteuning voor aangepaste menu's en - de meest intrigerende functie voor mij - ondersteuning voor meerdere sites met domeintoewijzing.

Als je geen junk bent van het contentmanagementsysteem, is dat prima. U kunt dit artikel overslaan. Maar voor mijn mede-techno-geeks, codekoppen en apache-dabblers, wil ik iets interessants delen, en iets cools.

Multi-site is een functie waarmee u een willekeurig aantal WordPress-websites kunt uitvoeren met een enkele WordPress-installatie. Als u meerdere sites beheert, is het prettig omdat u een goedgekeurde groep thema's en widgets kunt installeren en deze kunt activeren voor uw klantensites. Er zijn een paar technische hindernissen om uw domeinen in kaart te brengen, maar het proces is niet moeilijk.

Een van de probleemgebieden die ik heb vastgesteld, betreft het aanpassen van thema's. Omdat thema's beschikbaar kunnen worden gemaakt voor meerdere websites, hebben alle aanpassingen die u aan een thema aanbrengt ook invloed op andere sites die dat thema gebruiken bij uw installatie op meerdere sites. Mijn manier om dit te omzeilen is om een ​​thema te dupliceren voordat ik begin met aanpassen, en duidelijk het thema te noemen voor de klantensite waarvoor ik het vorm.

Een ander interessant probleem is wat er gebeurt in het .htaccess-bestand op uw Apache-server. WordPress moet paden per blog herschrijven en doet dit met een herschrijfregel en een php-bestand.

WordPress gebruikt de volgende herschrijfregel:

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

In wezen wordt alles dat zich in een subdirectory van mysite.com/files/directory bevindt, herschreven naar mysite.com/files/wp-include/myblogfolderpath ... en dit is waar het interessant wordt. Wat gebeurt er als u daadwerkelijk een bestand op uw server nodig heeft dat mysite.com/files/myfolder/myimage.jpg is? U krijgt een 404-fout, dat is wat er gebeurt. De Apache-herschrijfregel treedt in werking en verandert het pad.

Toegegeven, je zult dit probleem misschien nooit tegenkomen, maar ik deed het. Ik had een site die een javascript-widget van een andere website moest gebruiken, en ik moest afbeeldingen vinden op mysite.com/files/Images/myfile. Omdat er geen manier was om het bestand op de hostsite te wijzigen, moest ik een manier bedenken om dit op mijn server te doen. De eenvoudige oplossing is om een ​​herschrijfvoorwaarde te creëren die een uitzondering maakt voor specifieke bestanden.

Hier is de oplossing:

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]

De herschrijfvoorwaarden moeten vóór de herschrijfregel worden geplaatst, anders werkt deze truc niet. Het zou gemakkelijk moeten zijn om deze toestand voor uw eigen doeleinden aan te passen, mocht u een soortgelijk probleem tegenkomen. De oplossing werkte prima voor mij, waardoor ik aangepaste afbeeldingen kon vervangen in plaats van de minder gewenste alt-tekst die niet bij mijn ontwerp paste. Hopelijk werkt het ook voor jou.

Wat denk je?

Deze site gebruikt Akismet om spam te verminderen. Ontdek hoe uw reactiegegevens worden verwerkt.