Для поисковых систем домены
http://www.3mind.ru и
http://3mind.ru не одинаковые. Это может негативно сказаться для поискового продвижения сайта. Например, ссылки, которые поставлены для домена без
www уже не будут считаться для домена с
www.
Во многих популярных сайтах при открытие сайта с
www автоматически происходит редирект на домен без
www. В этой статье я покажу, как это можно сделать при помощи
php. Можно было бы использовать для этой файл .htaccess если на сервере включен модуль апача –
mod_rewrite. Но мой способ не хуже и мы не зависим в этой случае от модуля mod_rewrite, который не на всех серверах может быть включенным.
Для этого нам понадобятся следующие
php переменные:
$_SERVER['HTTP_HOST'] – в этой переменной содержится наш домен.
$_SERVER['REQUEST_URI'] – в этой переменой содержится путь, от корня сайта включая и get параметры если такие имеются в адресе.
Итак, вначале главной страницы сайта. Как правило, это файл index.php вставить следующий код:
if(strpos($_SERVER['HTTP_HOST'], 'www.') === false) {
// ничего не делаем
}
else {
$_HOST=str_replace('www.', '', $_SERVER['HTTP_HOST']);
header ('HTTP/1.1 301 Moved Permanently');
header("Location: http://".$_HOST.$_SERVER['REQUEST_URI']);
}
Если мы открываем сайт делаем проверку, есть ли в переменной
$_SERVER['HTTP_HOST']); вначале .
www и если нету, тогда ничего не делаем, так как пользователь открыл домен без .
www.
if(strpos($_SERVER['HTTP_HOST'], 'www.') === false) {
// ничего не делаем
Если
$_SERVER['HTTP_HOST'] содержит .
www, значит, пользователь открыл домен с
www. То есть как домен третьего уровня. Поэтому делаем перенаправление. Первое, что делаем, посылаем заголовок – ‘
HTTP/1.1 301 Moved Permanently’, что означает, что старый адрес навсегда перемещен на новый. Затем следующей строчкой делаем редирект используя переменные
$_SERVER['HTTP_HOST'] и
$_HOST (это
$_SERVER['REQUEST_URI'] в которой убрали .
www)
header ('HTTP/1.1 301 Moved Permanently');
header("Location: http://".$_HOST.$_SERVER['REQUEST_URI']);