Pravidlá WordPress majú tiež príliš výnimky

wordpress apache
Čas čítania: 2 minút

wordpress apacheWordPress urobil významný evolučný krok vpred v rámci blogovacej platformy a posunul ho bližšie k plnohodnotnému systému na správu obsahu so sledovaním revízií, väčšej podpore vlastných ponúk a - pre mňa najzaujímavejšej funkcii - podpore viacerých lokalít s mapovaním domén.

Ak nie ste feťák v systéme na správu obsahu, je to v poriadku. Môžete preskočiť priamo za tento článok. Ale pre mojich kolegov technogeekov, kódových hláv a apache-dablerov sa chcem podeliť o niečo zaujímavé a niečo super.

Multi-site je funkcia, ktorá vám umožní spustiť ľubovoľný počet webov WordPress pomocou jednej inštalácie WordPress. Ak spravujete viac webov, je to príjemné, pretože si môžete nainštalovať schválenú skupinu tém a widgetov a aktivovať ich pre svoje klientske weby. Existuje niekoľko technických prekážok, ktoré vám pomôžu zmapovať vaše domény, ale tento proces nie je náročný.

Jednou z problémových oblastí, ktoré som identifikoval, je prispôsobenie témy. Pretože motívy je možné sprístupniť na viacerých webových stránkach, akékoľvek prispôsobenie motívu ovplyvní aj všetky ostatné weby, ktoré tento motív používajú pri inštalácii viacerých webov. Týmto spôsobom obídem duplikovanie témy skôr, ako začnem s jej prispôsobovaním, a jasne pomenujem tému klientskej stránky, pre ktorú ju upravujem.

Ďalším zaujímavým problémom je to, čo sa stane v súbore .htaccess na vašom serveri Apache. WordPress musí prepisovať cesty po blogoch, a to pomocou pravidla prepisu a súboru php.

WordPress používa nasledujúce pravidlo prepisovania:

RewriteRule ^ ([_ 0-9a-zA-Z -] + /)? Súbory /(.+) wp-includes / ms-files.php? Súbor = $ 2 [L]

V podstate všetko, čo sa nachádza v podadresári mysite.com/files/directory, sa prepíše na mysite.com/files/wp-includes/myblogfolderpath… a to je zaujímavé miesto. Čo sa stane, ak skutočne potrebujete mať na serveri súbor, ktorý je mysite.com/files/myfolder/myimage.jpg? Dostanete chybu 404, to sa stane. Pravidlo prepisu Apache sa naštartuje a zmení cestu.

Pravdaže, s týmto problémom by ste sa možno nikdy nestretli, ale urobil som to. Mal som web, ktorý potreboval použiť widget javascript z iného webu, a potreboval som nájsť grafiku na mysite.com/files/Images/myfile. Pretože neexistoval spôsob, ako zmeniť súbor na hostiteľskej stránke, potreboval som prísť na spôsob, ako to urobiť na svojom serveri. Ľahkým riešením je vytvoriť podmienku prepisu, ktorá vytvorí výnimku pre konkrétne súbory.

Tu je riešenie:

RewriteCond% {REQUEST_URI}! /? Files / Image / file1.jpg $
RewriteCond% {REQUEST_URI}! /? Files / Image / file2.jpg $
RewriteRule ^ ([_ 0-9a-zA-Z -] + /)? Súbory /(.+) wp-includes / ms-files.php? Súbor = $ 2 [L]

Podmienky prepisu musia byť umiestnené pred pravidlom prepisu, inak tento trik nebude fungovať. Ak narazíte na podobný problém, malo by byť ľahké túto podmienku upraviť pre svoje vlastné účely. Riešenie pre mňa fungovalo skvele a umožnilo mi nahradiť vlastnú grafiku namiesto menej žiaduceho alternatívneho textu, ktorý nevyhovoval môjmu dizajnu. Dúfajme, že to bude fungovať aj pre vás.

Čo si myslíte?

Táto stránka používa Akismet na zníženie spamu. Zistite, ako sa spracúvajú údaje vašich komentárov.