Redirectionare la WWW folosind PHP
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!