duminică, 11 ianuarie 2009

Rescrierea URL'urilor

In cautarile mele pe internet am dat peste un concept interesant, acela de a rescrie URL'rile.

mod_rewrite este un modul oferit de Apache, care iti permite sa modifici URL'uri lungi si ciudate facandu-le sa arate frumos si usor de retinut, lucru benefic pentru utilizator si SE. In loc de un link "http://interfete_web.ro/index.php?forum=12&id=2" SE va citi un link de genul "http://interfete_web.ro/ceva-mishto_xxx.html", iar tu vei putea castiga cateva cuvinte cheie de cautare.

Un alt avantaj din punct de vedere SEO este legat de domeniul ales pentru gazduirea site'ului. Planul este sa iei un domeniu cum ar fi "http://alta_interfata_web.com" si sa-l redirectezi la "http://www.alta_interfata_web.com". Daca serverul tau nu este setat sa raspunda la astfel de cereri (cu sau fara "www"), utilizatorul va primi mesajul de eroare "no response" si crezand ca are numele domeniului gresit va abandona cautarea. Deci folosind rescrierea URL'ului te asiguri ca paginile tale vor fi accesate indiferent daca se foloseste "www" sau nu. Acest lucru ar trebui sa-ti creasta PageRank'ul pe Google deoarece ai un numar dublu de accesari pentru un singur domeniu in loc de doua domenii, fiecare cu accesarile lui.

Modulul mod_rewrite foloseste un motor de rescriere bazat pe reguli (expresii regulate), cu ajutorul carora se identifica URL'uril de modificat. Fiecarei regului ii se pot adauga conditii, pentru a asigura un mecanism de manipulare a URL'urilor mult mai puternic si flexibil. Modificarile URL pot depinde de variabile de server, variabile de mediu, header-e HTML, time-tamps. Aceste reguli sunt adaugate in fiserele http.conf sau .htaccess. Este de preferat folosirea fisierului http.conf, dar nu toata lumea are privilegii root, asa ca fisierul .htaccess este acceptabil cu toate ca introduce o scadere usoara a performantei.

Un exemplu simplu de regula mod_rewrite adaugata in .htaccess:

RewriteEngine on
#Redirect http://alta_interfata_web.org to http://www.alta_interfata_web.org
RewriteCond %{HTTP_HOST} ^alta_interfata_web.org
RewriteRule ^(.*)$ http://www.alta_interfata_web.org/$1 [r=301,L]

De asemenea, la rescrierea URL'ului poti intoarce clientului codul HTTP 301, informandu-l de mutarea permanenta a site-ului. Acest lucru este foarte util in cazul SE cum ar fi Google, care vor transfera PageRank-ul catre noua pagina in mod automat.

Pentru mai multe detalii despre modulul mod_rewrite si sintaxa expresiilor regulate vizitati http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html

Niciun comentariu: