Синтаксис регулярного выражения в RewriteCond немного нарушен: правильный способ проверки на строгое равенство с www.new.domain.com
(с точностью до различий в случае) - либо
RewriteCond %{HTTP_HOST} ^www\.new\.domain\.com$ [NC]
или
RewriteCond %{HTTP_HOST} =www.new.domain.com [NC]
Тем не менее, эти ошибки не должны не мешать работе вашего правила перезаписи: ваш исходный RewriteCond будет соответствовать www.new.domain.com
просто отлично, он также соответствует некоторым другим строкам (например, wwwXnewYdomainZcomFOOBAR
). На самом деле у меня есть очень похожий набор правил в моем собственном файле .htaccess
, и они прекрасно работают:
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^vyznev\.net$
RewriteCond %{HTTP_HOST} ^(www\.)?vyznev\.net$ [NC]
RewriteRule ^(.*) http://vyznev.net/$1 [NS,L,R=permanent]
Большинство различий между вашим кодом и моим чисто косметическое. Единственная потенциально значимая проблема, которую я вижу, если у вас нет директивы RewriteBase
; Вы должны обязательно добавить один, чтобы избежать потенциальных проблем позже. Тем не менее, насколько я могу судить, отсутствие такового не должно помешать вам получить по крайней мере некоторое перенаправление , даже если оно не соответствует ожидаемому URL.