Рубрики
Программирование

Переадресация в .htaccess с/на www

В процессе работы с различными хостингами, работающими на Apache, возникают трудности с тем, что сайт, при правильно указанных DNS записях должен бы выводиться по обоим запросам http://site.ru и http://www.site.ru, но он этого не делает и выводится только при одном запросе, например при втором.

Разрешить эту ситуацию поможет файл .htaccess, позволяющий установить переадресацию, или редирект, внутри одной категории. Чтобы переадресовывать посетителя с site.ru на www.site.ru содержимое файла .htaccess должно быть следующим:

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

С помощью этого файла любые запросы к сайту без www будут отправлены на такие же запросы к сайту с www.

Для переадресации запросов с www на запросы без www содержимое .htaccess должно быть таким:

RewriteEngine On
RewriteCond %{HTTP_HOST} !^my-domain.com$ [NC]
RewriteRule ^(.*)$ http://my-domain.com/$1 [R=301,L]