当我在htaccess文件中使用它时:
RewriteCond %{HTTP_HOST} ^site\.com$ [NC]
RewriteRule ^(.*)$ http://www.site.com/ [R=301]
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^(.+)$ $1.php [NC,L]
如果你去没有www的site.com,它会重定向到www.site.com/.php而不是www.site.com。
有什么想法?
谢谢!
答案 0 :(得分:1)
也许这是旧版.htaccess
的浏览器缓存?尝试清空缓存,或使用其他浏览器(或者可能是Priavte Browsing)。
答案 1 :(得分:1)
我认为根目录SCRIPT_FILENAME是“/”,这不会被视为有效文件并且会跳转!-f导致规则被应用。
由于/是正则表达式捕获的角色,它会将其重写为www.site.com/.php
答案 2 :(得分:1)
尝试通过添加“,L”添加“last”到规则:
RewriteRule ^(.*)$ http://www.site.com/ [R=301,L]
答案 3 :(得分:1)
我最后通过向RewriteRule添加$ 1来修复它^(。*)$ http://www.site.com/ $ 1 [R = 301,L]
感谢您的帮助。