好的,所以我有一个网站,我们强制从WWW重定向到非WWW版本的网站,因为我们使用的CMS只能处理每个站点一个realUrl参数。
我在系统中进行了一次通用重写,迫使所有WWW流量到现在WWW,如下所示:
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
这适用于大多数网页。现在我遇到的问题是这个。我在站点中有一个新的子目录,我也将旧页面的所有流量重定向到新的子目录。像这样:
Redirect 301 /my-page/ /new-directory/my-page/
所以发生的事情是,如果有人来 http://example.com/my-page ,那么他们会被正确地重定向到 http://example.com/new-directory/my-page 。
但是,如果他们来到 http://www.example.com/my-page - 他们会被重定向到 http://example.com ,但永远不会回到 {{3 }} 即可。
如何克服这一点的任何帮助将非常感激。 :)
答案 0 :(得分:0)
不要将Redirect
指令与mod_rewrite
规则混合使用。你有这样的规则:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ http://%1%{REQUEST_URI} [R=301,NE,L]
RewriteRule ^my-page(/.*)?$ /new-directory$1 [R=301,NE,NC,L]
在测试此更改之前清除浏览器缓存。
答案 1 :(得分:0)
如果您有权访问vhost配置,请确保您的ServerName
不是www,并且www是ServerAilas
。