将www重定向到非www适用于主页,不适用于文件夹

时间:2012-08-09 15:16:31

标签: .htaccess mod-rewrite redirect http-redirect

我在.htaccess文件中使用了这样的重定向代码:

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteRule ^(.*)$ %{HTTP_HOST}$1 [C]
RewriteRule ^www\.(.*)$ http://$1 [L,R=301]

当我输入:www.domain.com/file.php时,它可以转发到domain.com/file.php

当我输入:www.domain.com/folder/folder2时,我被重定向到:domain.comfolder/folder2(没有斜线)

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

不确定为什么会发生这种情况,但当我将它们放入我的htaccess文件中时,这些规则根本不起作用。由于看起来您正在做的是将 www.domain.com 请求重定向到 domain.com 请求,您可以这样做:

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

而不是将规则链接在一起并将主机重写为URI路径。