.htaccess — Несколько доменов в одном

Довольно часто для одного сайта имеется несколько доменных имен. Настройка доменных записей достаточна, чтобы сайт работал с любым доменным именем.

Однако, организация переадресации со всех вторичных доменных имен на основное позволит избежать некоторых дополнительных проблем, да и посетители будут привыкать к вашему основному доменному имени.

Например, у вас есть четыре домена mysite.ru, my-site.ru, my-site.com и mysite.com . Предположим, что вы решили сделать основным именем mysite.com . Как организовать переадресацию?

Все достаточно просто. Добавляем в .htaccess следующие строки:

##
## Redirect to common domain name mysite.com
##
RewriteCond %{HTTP_HOST} mysite.ru [OR]
RewriteCond %{HTTP_HOST} my-site.ru [OR]
RewriteCond %{HTTP_HOST} my-site.com
RewriteRule .* http://mysite.com%{REQUEST_URI} [R=301,L]

Разберем немного подробнее.

RewriteCond %{HTTP_HOST} mysite.ru [OR]

Эти строки задают условие данному правилу переадресации, что адрес хоста полученный в переменной %{HTTP_HOST} должен соответствовать указанной строке. Флаг [OR] в конце строки означает, что условие хотя-бы одной из этих строк должно выполняться.

RewriteRule .* http://mysite.com%{REQUEST_URI} [R=301,L]

Собственно, само правило переадресации. Оно говорит, что нужно переадресоваться на mysite.com и дописать путь относительно имени домена из переменной %{REQUEST_URI}. При этом параметры запроса будут добавлены автоматически.

Теперь, запрос к серверу http://www.my-site.ru/articles/?id=175  будет автоматически переадресован на http://mysite.com/articles/?id=175 . При этом в браузере клиента также будет указан уже новый адрес.

Добавить комментарий