【问题标题】:RewriteRule only works in one direction?RewriteRule 只在一个方向上起作用?
【发布时间】:2013-09-21 12:36:55
【问题描述】:

此重写规则有效。

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]

.co.uk 是 Plesk 11 中 .com 的别名。它在 Apache2(API 版本 20051115)上。它也有 nginx,但我不知道确切的细节,因为它是在共享主机上。

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

【问题讨论】:

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

标签: apache .htaccess mod-rewrite subdomain plesk


【解决方案1】:

用这些规则替换你的规则:

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]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-22
    • 2023-03-19
    • 2020-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多