我多年来一直在使用此代码。然而,就像文件夹一样,它在几天前就停止了工作。
RewriteEngine on
#convert everything to www
Options +FollowSymLinks
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
所以,把它包起来:
http://foo.com/blah.php - > http://www.foo.com/blah.php
HOWEVER http://foo.com/bar/ - > http://www.foo.com而非http://www.foo.com/bar/
我正在使用http://www.redirect-checker.org/index.php彻底检查发生了什么,我看到的只是正常的http301重定向。我唯一注意到的是它是一个错误的重定向。
我试图删除.htaccess中的所有内容,但上面粘贴的代码行,但结果是一样的。
我的(共享计划)托管公司是否改变了Apache的内部配置?
提前致谢
答案 0 :(得分:1)
问题是,通过在每个子目录中使用Inherit
,此www
添加规则仅相对于该子目录设置$1
。请在父.htaccess :
RewriteEngine on
#convert everything to www
Options +FollowSymLinks
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L,NE]