RewriteCond反向引用不起作用

时间:2009-10-08 03:34:38

标签: apache mod-rewrite backreference

如果我去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

2 个答案:

答案 0 :(得分:3)

否定模式不匹配,因此您无法引用该组不存在的匹配项。

但请尝试使用此规则:

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

答案 1 :(得分:0)

您的情况与bar.mysite.com不符:

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

您需要将其更改为匹配才能使反向引用工作:

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