Redirectionare la WWW folosind PHP

Share on:

Problema apare atunci cand utilizatorul intra pe un domeniu si trebuie redirectionat care acelasi nume de domeniu, pastrand variabilele GET dar adaugand www.

Solutia mea se bazeaza pe functia header si variabilele globale din $_SERVER:

 1// retinem adresa pentru a lucra mai usor cu ea
 2// va fi 'www.exemple.org' sau 'exemple.org'
 3$host = $_SERVER['HTTP_HOST'];
 4
 5// verificam daca primele 4 caractere sunt 'www.'
 6// '.' este important pentru numele de domeniu care incep cu 'www'
 7if(substr($host, 0, 4) !== 'www.') {
 8     // anuntam browserul ca pagina a fost mutata
 9     header('HTTP/1.1 301 Moved Permanently'); 
10
11     // introducem noua locatie
12     // in $_SERVER['REQUEST_URI'] se afla variabilele
13     header('Location: http://www.' . $host . $_SERVER['REQUEST_URI']);
14
15     // iesim din pagina
16     exit();
17}

Din pricina headerului 301 motoarele de cautare nu vor indexa pagina fara www.

PS: codul de mai sus trebuie sa fie primul lucru care il afisaza pagina!