WordPress-regler har också undantag

wordpress apache

wordpress apacheWordPress gjorde ett stort utvecklingssteg framåt på bloggplattformen och flyttade det närmare ett fullfjädrat innehållshanteringssystem med revisionsspårning, mer stöd för anpassade menyer och - den mest spännande funktionen för mig - stöd för flera webbplatser med domänmappning.

Om du inte är en junkie för innehållshanteringssystem är det okej. Du kan hoppa förbi den här artikeln. Men för mina andra techno-geeks, kod-huvuden och apache-dabblers, jag vill dela något intressant och något coolt.

Multi-site är en funktion som låter dig köra valfritt antal WordPress-webbplatser med en enda WordPress-installation. Om du administrerar flera webbplatser är det trevligt eftersom du kan installera en godkänd grupp av teman och widgets och aktivera dem för dina klientsidor. Det finns några tekniska hinder för att kartlägga dina domäner, men processen är inte svår.

Ett av de problemområden jag identifierade är temananpassning. Eftersom teman kan göras tillgängliga på flera webbplatser, påverkar alla anpassningar du gör till ett tema också andra webbplatser som använder det temat på din installation på flera webbplatser. Min väg runt detta är att duplicera ett tema innan jag börjar anpassa och tydligt namnge temat för klientsidan jag stylar det för.

En annan intressant fråga är vad som händer i .htaccess-filen på din Apache-server. WordPress måste skriva om sökvägar för blogg för blogg och gör detta med en omskrivningsregel och en php-fil.

WordPress använder följande omskrivningsregel:

RewriteRule ^ ([_ 0-9a-zA-Z -] + /)? Filer /(.+) wp-inkluderar / ms-filer.php? Fil = $ 2 [L]

I huvudsak skrivs allt som finns i en underkatalog till mysite.com/files/directory till mysite.com/files/wp-includes/myblogfolderpath… och det är här det blir intressant. Vad händer om du faktiskt behöver ha en fil på din server som är mysite.com/files/myfolder/myimage.jpg? Du får ett 404-fel, det är vad som händer. Apache-omskrivningsregeln sparkar in och ändrar sökvägen.

Visst, du kanske aldrig stöter på det här problemet, men jag gjorde det. Jag hade en webbplats som behövde använda en javascript-widget från en annan webbplats, och den behövde hitta grafik på mysite.com/files/Images/myfile. Eftersom det inte fanns något sätt att ändra filen på värdwebbplatsen behövde jag ta reda på ett sätt att göra detta på min server. Den enkla lösningen är att skapa ett omskrivningsvillkor som gör ett undantag för specifika filer.

Här är lösningen:

RewriteCond% {REQUEST_URI}! /? Files / Image / file1.jpg $
RewriteCond% {REQUEST_URI}! /? Files / Image / file2.jpg $
RewriteRule ^ ([_ 0-9a-zA-Z -] + /)? Filer /(.+) wp-inkluderar / ms-filer.php? Fil = $ 2 [L]

Omskrivningsvillkoren måste placeras före omskrivningsregeln, annars fungerar det här tricket inte. Det bör vara enkelt att ändra detta villkor för dina egna ändamål, om du stöter på ett liknande problem. Lösningen fungerade bra för mig, så att jag kunde ersätta anpassad grafik snarare än den mindre önskvärda alt-texten som inte passade min design. Förhoppningsvis kommer det att fungera för dig också.

Vad tror du?

Den här sidan använder Akismet för att minska spam. Läs om hur din kommentardata behandlas.