.htaccess的正则表达式问题重定向
当我在我的htaccess文件使用:.htaccess的正则表达式问题重定向
RewriteCond %{HTTP_HOST} ^site\.com$ [NC]
RewriteRule ^(.*)$ http://www.site.com/ [R=301]
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^(.+)$ $1.php [NC,L]
如果你去site.com加www重定向到www.site.com/.php而不是www.site。 COM。
有什么想法?
谢谢!
也许这是您的旧.htaccess
的浏览器缓存?尝试清空缓存,或使用其他浏览器(或可能是Priavte Browsing)。
我认为在根SCRIPT_FILENAME将是“/”,这不会被认为是一个有效的文件,并绊倒!-f导致规则被应用。
由于/是正则表达式抓到一个字符就会重写它www.site.com/.php
那么我该如何解决它? – 2011-05-12 04:26:55
我认为这会实现你要找的东西? RewriteCond%{SCRIPT_FILENAME}!-d RewriteCond%{SCRIPT_FILENAME}!-f RewriteRule ^(。+)$ $ 1.php [NC,L] – 2011-05-12 16:24:10
尝试添加“最后”加治“L”:
RewriteRule ^(.*)$ http://www.site.com/ [R=301,L]
我已经这样做了,我认为它与这个RewriteCond%{SCRIPT_FILENAME}有关!-f RewriteRule ^(。+)$ $ 1.php [NC,L] – 2011-05-11 20:44:25