mod_rewrite este un modul puternic pentru servere web care vă permite să modificați în timp real cererile URL primite. Este utilizat în principal pentru a crea URL-uri “curate”, pentru a redirecționa paginile vechi către cele noi și pentru a îmbunătăți securitatea site-ului web prin mascarea structurii de fișiere subiacente.
Cuprins
Context
Când un vizitator introduce o adresă URL, serverul caută de obicei un fișier specific (de exemplu, sklep.php). Cu ajutorul mod_rewrite, serverul poate “intercepta” acea cerere și poate afișa conținutul dintr-o altă cale, fără ca utilizatorul – sau motoarele de căutare – să vadă adresa originală complexă. Acest proces este gestionat prin intermediul fișierului .htaccess din directorul site-ului dvs. web.
De ce să folosiți mod_rewrite?
Adresele URL dinamice standard arată adesea astfel: http://www.mycompany.com/shop.php?category=hats&id=123
Prin aplicarea regulilor de rescriere, le puteți transforma în: http://www.mycompany.com/products/hats/123/
Printre principalele avantaje se numără:
- Optimizarea pentru motoarele de căutare (SEO): Linkurile cu aspect static sunt indexate mai ușor de motoarele de căutare.
- Experiența utilizatorului: Linkurile curate sunt mai ușor de reținut, de citit și de partajat.
- Securitate: Mascarea numelor de scripturi și a parametrilor variabililor ascunde structura tehnică a site-ului dvs. de potențialii atacatori.
- Stabilitate: Dacă schimbați tehnologia din spatele site-ului, puteți păstra aceeași structură de URL-uri, prevenind astfel apariția linkurilor nefuncționale.
Cum funcționează: Reguli de bază
Pentru a utiliza mod_rewrite, trebuie să includeți directiva RewriteEngine on în partea de sus a fișierului .htaccess.
1. Redirecționare internă simplă
Dacă ați redenumit fișierul page.html în new_page.html, vă puteți asigura că vechiul link funcționează în continuare:
Apache
RewriteEngine on
RewriteRule ^page\.html$ new_page.html
- Simbolul
^marchează începutul căii. - Simbolul
$marchează sfârșitul căii. - Caracterul
\dinaintea punctului indică serverului să trateze punctul ca pe un caracter literal, nu ca pe o comandă specială.
2. Forțarea unei redirecționări vizibile [R]
Dacă doriți ca bara de adrese a browserului utilizatorului să se actualizeze efectiv cu noua adresă URL, adăugați indicatorul [R]:
Apache
RewriteRule ^page\.html$ new_page.html [R] Rescriere avansată (expresii regulate)
Puteți utiliza “caractere joker” pentru a gestiona mai multe adrese simultan. Această practică este obișnuită în cazul cataloagelor de produse.
Exemplu: Captarea ID-urilor
Apache
RewriteRule ^products/([0-9]+)/$ /info.php?ID=$1
([0-9]+): Se potrivește cu orice secvență de numere.$1: Preia numărul găsit în primul set de paranteze și îl inserează în URL-ul real.- Rezultat: O solicitare pentru
/products/123/încarcă intern/info.php?ID=123.
Diferența: Rewrite intern vs. Redirecționare externă
- Rewrite intern: Serverul afișează conținutul nou, dar adresa din browserul utilizatorului rămâne aceeași. Este o schimbare “transparentă”.
- Redirecționare externă
[R]: Serverul îi indică browserului să acceseze o nouă adresă. URL-ul din bara de adrese se modifică. Această opțiune este mai potrivită pentru mutarea permanentă a conținutului.
Implicații practice
- Ordinea contează: Regulile din fișierul
.htaccesssunt procesate de sus în jos. Plasați regulile specifice (cum ar fi mutările de pagini individuale) înaintea regulilor generale (cum ar fi rescrierea la nivel de categorie). - Sensibilitatea la sintaxă: Mici greșeli de tastare într-un fișier
.htaccesspot duce la o eroare 500 Internal Server Error. Păstrați întotdeauna o copie de rezervă a fișierului de lucru înainte de a efectua modificări. - Barele oblice finale: Folosiți barele oblice în mod consecvent. O regulă pentru
products/12/nu va acoperiproducts/12decât dacă adăugați în mod specific o regulă care să le trateze pe amândouă.
Rezumat
Modulul mod_rewrite este un instrument esențial pentru menținerea unor structuri de URL-uri profesionale, optimizate pentru SEO și sigure. Stăpânind câteva reguli de bază și expresii regulate, vă puteți asigura că navigarea pe site-ul dvs. rămâne logică și permanentă, indiferent de modificările tehnice.