Apache 重写规则只能在一个方向上工作?

Apache 重写规则只能在一个方向上工作?,apache,.htaccess,mod-rewrite,subdomain,plesk,Apache,.htaccess,Mod Rewrite,Subdomain,Plesk,这个重写规则有效 RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC] RewriteRule ^(.*)$ http://www.example.com/$1 [R,L,QSA] 这个重写规则不适用 RewriteCond %{HTTP_HOST} !^www\.example\.co\.uk$ [NC] RewriteRule ^(.*)$ http://www.example.co.uk/$1 [R,L,QSA] 在Plesk 11中,

这个重写规则有效

RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [R,L,QSA] 
这个重写规则不适用

RewriteCond %{HTTP_HOST} !^www\.example\.co\.uk$ [NC]
RewriteRule ^(.*)$ http://www.example.co.uk/$1 [R,L,QSA]
在Plesk 11中,.co.uk是.com的别名。它在Apache2(API版本20051115)上。它也有nginx,但我不知道具体细节,因为它是在共享主机上


它已经工作了多年,但是主机已经改变了服务器配置(没有告诉,grrr!)并破坏了重定向。Firefox告诉我“页面没有正确重定向”。

用以下规则替换您的规则:

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

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

这两个规则在同一个.htaccess文件中吗?第二个是原始规则,位于域根目录的.htaccess中。它不再工作(服务器无法返回页面,FF返回上述错误)。第一对确实有效。