Astăzi vă voi introduce în lumea misterioasă a fişierelor .htaccess. Cei mai puţin iniţiaţi vor putea înţelege acum câteva din primele taine ale acestui fişier, mai exact ce sunt directivele RewriteEngine, RewriteBase, RewriteRule şi cum se folosesc acestea în fişierele .htaccess.
RewriteEngine
De regulă prima linie întâlnită în fişierul .htaccess conţine directiva RewriteEngine. Aceasta este folosită pentru a porni mecanismul redirectărilor forţate sub forma: RewriteEngine On. Odată pornite redirectările veţi putea jongla cum doriţi pentru a efectua URL rewriting-urile dorite.
RewriteBase
A doua linie după RewriteEngine stabileşte baza ce va fi luată în calcul la redirectare. RewriteBase poate conţine un slash sau un director încadrat între slash-uri. Veţi găsi aşadar linii de forma RewriteBase / sau RewriteBase /Director/, în primul caz baza fiind directorul rădăcină, iar în cazul al doilea baza având alipită şi directorul menţionat. Ati putea reţine că RewriteBase specifică modulului mod_rewrite ce anume să alipească la începutul oricărei căi relative.
RewriteRule
Am pornit redirectările şi am stabilit baza, este timpul acum să stabilim regulile dorite. Cea mai simplă redirectare se poate exemplifica astfel: RewriteRule PaginaVeche.html PaginaNoua.html. În acest moment, solicitând afişarea paginii PaginaVeche.html, vom primi spre vizualizare automat PaginaNoua.html. Rescrierea în acest caz este efectuată intern şi este invizibilă în calea afişată de browser. Pentru a deveni vizibilă trebuie să adăugăm flagul [R]. Regula devine: RewriteRule PaginaVeche.html PaginaNoua.html [R], iar browserul va primi acum şi noua cale, o va afişa în bara de adrese şi toată lumea va şti acum clar că pagina a fost mutată temporar către noul URL.
Cum însă în majoritatea cazurilor avem de-a face, nu cu redirectări temporare, ci cu redirectări permanente, trebuie să adăugăm la sfârşitul directivei RewriteRule argumentul [R=301]. Linia va arăta în final astfel: RewriteRule PaginaVeche.html PaginaNoua.html [R=301]. Noua sintaxă va fi acum foarte utilă pentru eliminarea paginilor duplicat, deoarece prin adăugarea acestui argument am semnalat şi faptul că vechea pagină a fost mutată permanent. În plus, redirectarea 301 produce şi transfer de Link Juice în timp.
Exemplul 1
Primul nostru cod de redirectare în .htaccess va arăta astfel:
RewriteEngine On
RewriteBase /
RewriteRule PaginaVeche.html PaginaNoua.html [R=301]
Rezultatul va fi redirectarea URL-ului original http://domeniu.ro/PaginaVeche.html către noul URL http://domeniu.ro/PaginaNoua.html.
Exemplul 2
Desigur putem avea o alta bază şi mai multe pagini redirectate, de exemplu:
RewriteEngine On
RewriteBase /Director/
RewriteRule PaginaVeche1.html PaginaNoua1.html [R=301]
RewriteRule PaginaVeche2.html PaginaNoua2.html [R=301]
RewriteRule PaginaVeche3.html PaginaNoua3.html [R=301]
În acest exemplu, intrând pe site şi apelând paginile PaginaVeche(1/2/3).html veţi fi redirectat către paginile PaginaNoua(1/2/3).html aflate în folderul Director.
Efectele directivelor
Efectele directivelor analizate azi, asamblate astfel în cele 2 coduri, sunt: redirectarea tuturor utilizatorilor şi motoarelor de căutare către noile URL-uri, informarea tuturora despre URL-ul final, inclusiv a browserelor, semnalarea către motoarele de căutare a faptului că paginile au fost mutate permanent şi transferul de link juice în timp de la vechile pagini către cele noi.