我的.htaccess有一个重写,从URL中删除.php,以便:
http://example.com/page.php
更改为http://example.com/page
这个问题已经好多年了,直到我需要更改文件的名称。现在发生这种情况:
http://example.com/newpage
更改为http://example.com/newpage/
并引发403错误。
这里的重写适用于其他一切:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]
我确定这是某种类型的缓存问题,结合默认情况下Apache添加了一个斜杠,但我无法弄清楚缓存发生的位置,我也不想转向出于安全原因关闭Apache的斜杠(加上,我不应该)。
因为你会问:
我使用cPanel VPS和Centos 5. Apache 2.2和PHP 5.4。
cPanel似乎没有办法清除Apache缓存。 htcacheclean不在那里,我不想安装它以防它用cPanel搞砸了。
是的,我通过浏览器缓存清除了。尝试了一个新的浏览器。试了一台新电脑。
文件名正确无误。如果我将网址更改为http://example.com/newpage.php,则可以正常使用。
自从我做出初步改变以来已经过了四个小时。
尝试重启服务器。
有什么想法吗?
答案 0 :(得分:0)
要使用.htaccess
删除尾部斜杠,您可以使用以下内容:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [R=301,L]
它应该可以解决您遇到的错误。