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








Fucktor on Август 19th, 2010
Можно и через .htaccess прописать например. Для сайтов с www нужно прописать вот что
RewriteCond %{HTTP_HOST} .
RewriteCond %{HTTP_HOST} !^www\.example\.com [NC]
RewriteRule (.*) http://www.example.com/$1 [R=301,L]