Обратная ссылка RewriteCond не работает

Если я перехожу к http://www.example.com, я хочу, чтобы он оставался там, и он работает нормально.
Если я перехожу к http://bar.example.com, он перенаправляется на http://www..com, что неверно
Я хочу, чтобы он переходил на http://www.example.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


person er1234    schedule 08.10.2009    source источник


Ответы (2)


Отрицательные шаблоны не имеют соответствия, и поэтому вы не можете ссылаться на группу этого несуществующего совпадения.

Но вместо этого попробуйте это правило:

RewriteCond %{HTTP_HOST} !^$
RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]
RewriteRule ^(.*) http://www.example.com/$1 [L,R=301]
person Gumbo    schedule 08.10.2009
comment
Ааа отрицательный шаблон. Все это имеет смысл сейчас. Спасибо! - person er1234; 09.10.2009

Ваше условие не соответствует bar.mysite.com:

RewriteCond %{HTTP_HOST}   !^www.(mysite).com [NC]

Вам нужно изменить его, чтобы он соответствовал, чтобы обратная ссылка работала:

RewriteCond %{HTTP_HOST}   !^[^\.]+\.(mysite)\.com [NC]
person Andrew    schedule 08.10.2009