Apache 重写第二个反向引用不工作

Apache 重写第二个反向引用不工作,apache,mod-rewrite,backreference,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] Rewri

如果我转到
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] 重新启动发动机 重写条件%{HTTP_HOST}!^$ 重写cond%{HTTP_HOST}^www.(example.com[NC] 重写规则^(.*)http://www.%1.com/$1[L,R] Ubuntu 8.04
包装:apache2 mpm prefork
架构:i386

版本:2.2.8-1

您的情况与bar.mysite.com不匹配:

RewriteCond %{HTTP_HOST}   !^www.(mysite).com [NC]
您需要将其更改为匹配,以便使反向引用正常工作:

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

被否定的模式没有匹配项,因此不能引用一组不存在的匹配项

但请尝试以下规则:

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

啊,否定模式。现在一切都有意义了。谢谢