我正在使用mod_rewrite隐藏文件扩展名此代码工作正常但是当我在url末尾添加斜杠时显示错误500内部服务器错误
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
请帮帮我
答案 0 :(得分:1)
但是当我在url的末尾添加斜杠时,显示错误500内部服务器错误
这是因为斜杠在(.*)
中组合在一起,然后由$1
引用,因此请求如下:
http://your.host.com/my_file/
正在改写为:
http://your.host.com/my_file/.php
原因是条件%{REQUEST_FILENAME}\.php
存在,因为尾部斜杠被忽略。你只需要在RewriteRule
的正则表达式中包含匹配斜杠的匹配:
RewriteRule ^(.*?)/?$ $1.php