Regulile WordPress au și excepții, prea

wordpress apache
Timp de citit: 2 minute

wordpress apacheWordPress a făcut un pas evolutiv major în platforma de blogging, apropiindu-l de un sistem complet de gestionare a conținutului cu urmărirea reviziilor, mai multă asistență pentru meniurile personalizate și - cea mai interesantă caracteristică pentru mine - asistență pe mai multe site-uri cu maparea domeniului.

Dacă nu sunteți un drogat al sistemului de gestionare a conținutului, este în regulă. Puteți sări peste acest articol. Dar pentru colegii mei techno-geeks, coduri de cap și apache-dabblers, vreau să împărtășesc ceva interesant și ceva interesant.

Multi-site este o caracteristică care vă permite să rulați orice număr de site-uri web WordPress cu o singură instalare WordPress. Dacă administrați mai multe site-uri, este frumos, deoarece puteți instala un grup aprobat de teme și widget-uri și le puteți activa pentru site-urile dvs. client. Există câteva obstacole tehnice pentru cartografierea domeniilor dvs., dar procesul nu este dificil.

Unul dintre domeniile problematice pe care l-am identificat este personalizarea temelor. Deoarece temele pot fi puse la dispoziția mai multor site-uri web, orice personalizări pe care le faceți unei teme vor afecta, de asemenea, orice alte site-uri care folosesc tema respectivă în instalarea dvs. pe mai multe site-uri. Modalitatea mea de a rezolva acest lucru este să duplic o temă înainte de a începe să personalizez și să denumesc în mod clar tema pentru site-ul client pentru care îl amenajez.

O altă problemă interesantă este ce se întâmplă în fișierul .htaccess de pe serverul dvs. Apache. WordPress trebuie să rescrie căi pe bază de blog cu blog și face acest lucru cu o regulă de rescriere și un fișier php.

WordPress folosește următoarea regulă de rescriere:

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

În esență, orice se află într-un subdirector al mysite.com/files/directory este rescris pe mysite.com/files/wp-includes/myblogfolderpath… și acesta devine interesant. Ce se întâmplă dacă trebuie să aveți un fișier pe serverul dvs. care este mysite.com/files/myfolder/myimage.jpg? Veți primi o eroare 404, așa se întâmplă. Regula de rescriere Apache începe și schimbă calea.

Desigur, s-ar putea să nu întâlnești niciodată această problemă, dar am făcut-o. Aveam un site care trebuia să utilizeze un widget javascript de pe un alt site web și trebuia să găsească grafică la mysite.com/files/Images/myfile. Deoarece nu exista nicio modalitate de a schimba fișierul pe site-ul gazdă, am avut nevoie să găsesc o modalitate de a face acest lucru pe serverul meu. Soluția ușoară este de a crea o condiție de rescriere care face o excepție pentru anumite fișiere.

Aici este soluția:

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]

Condițiile de rescriere trebuie plasate înainte de regula de rescriere, altfel acest truc nu va funcționa. Ar trebui să fie ușor să modificați această condiție în scopuri proprii, dacă întâmpinați o problemă similară. Soluția a funcționat excelent pentru mine, permițându-mi să înlocuiesc grafica personalizată, mai degrabă decât textul alternativ mai puțin dorit, care nu se potrivea cu designul meu. Sperăm că va funcționa și pentru tine.

Ce părere ai?

Acest site folosește Akismet pentru a reduce spamul. Aflați cum sunt procesate datele despre comentarii.