Если я перейду к http://www.example.com, я хочу, чтобы он остался там, что работает нормально. Если я перехожу на http://bar.example.com, он перенаправляется на http://www..com, что неправильно Я хочу чтобы перейти к http://www.example.com, учитывая обратную ссылку в RewriteCond
http://www.example.com
http://bar.example.com
http://www..com
RewriteCond
RewriteEngine On RewriteCond %{HTTP_HOST} !^$ RewriteCond %{HTTP_HOST} !^www.(example).com [NC] RewriteRule ^(.*) http://www.%1.com/$1 [L,R]
Ubuntu 8.04 Пакет: apache2-mpm-prefork Архитектура: i386 Версия: 2.2.8-1
Отрицательные шаблоны не имеют соответствия, и поэтому вы не можете ссылаться на группу этого несуществующего соответствия.
Но попробуйте это правило вместо:
RewriteCond %{HTTP_HOST} !^$ RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC] RewriteRule ^(.*) http://www.example.com/$1 [L,R=301]
Ваше состояние не соответствует bar.mysite.com:
RewriteCond %{HTTP_HOST} !^www.(mysite).com [NC]
Вам нужно изменить его для соответствия, чтобы обратная ссылка работала:
RewriteCond %{HTTP_HOST} !^[^\.]+\.(mysite)\.com [NC]