Sat 20 Jan 2007
Ce este URL rewriting (mod_rewrite din Apache)
Posted by Marian Dobre under Apache Articles1 Comment
Orice dezvoltator de aplicatii web care se respecta trebuie sa cunoasca principiile rescrierii linkurilor.
Ce inseamna “url rewriting”?
Pe romaneste “rescrierea URL-urilor”, reprezinta de fapt o metoda de scriere “on the fly” a URL-urilor, iar mod_rewrite este modulul din Apache care ne permite acest lucru.
mod_rewrite este folosit pentru rescrierea URL-urilor la nivel de server. De exemplu, un utilizator face o cerere pentru htp://www.numesite.com/ro/produse, insa, de fapt, serverul ii va returna htp://www.numesite.com/index.php?language=ro&page=produse. Bineinteles ca utilizatorului ii va fi ascuns acest aspect.
Pentru a intelege mai bine tehnicile de rewriting ar trebui sa explicam cateva notiuni:
De ce este util url rewriting ?
- imbunatateste gradul de securitate al aplicatiei
- estetica URL-urilor
- indexarea mai usoara de catre motoarele de cautare
- URL-urile vor fi “search engine friendly”
- URL-urile sunt mai usor de retinut de catre utilizatori
URL rewriting imbunatateste gradul de securitate al aplicatiei
Una din metodele folosite pentru a ataca un site este modificarea parametrilor transmisi prin GET(cu alte cuvinte modificarea URL-ului). Aceasta practica este des utilizata in atacurile “sql injection” care pot afecta grav baza de date a site-ului si integritatea datelor.
Sa zicem ca avem un script care afiseaza produsele dintr-o categorie:
www.numesite.ro/produse.php?id_categorie=123
iar hackerul rau intentionat scrie
www.numesite.ro/produse.php?id_categorie=atac
Aceasta actiune va determina in mod normal o eroare la interogarea ce se efectueaza in baza de date si afisarea acesteia in browser.
URL rewriting face ca URL-urile sa fie “search engine friendly”
Exista mitul care spune ca motoarele de cautare nu indexeaza paginile care contin mai multi parametrii (de tipul www.numesite.ro/pagina.php?categorie=123&produs=321&language=ro ). Este o opinie infirmata de majoritatea motoarelor de cautare insa url rewriting este o tehnica foarte puternica de SEO (Search Engine Optimization).
URL-urile vor fi mai usor de retinut de catre utilizatori
Este mult mai usor de retinut un link de forma
www.numesite.ro/Stiri/Imobiliare/
decat
www.numesite.ro/pagina.php?id=123456789
Utilizatorul va time minte mai usor prima forma a URL-ului si va fi mai simplu de identificat din lista de adrese vizitate a browser-ului, in cazul in care pagina a fost vizitata in prealabil.