2

我正在使用 mod_rewrite 隐藏文件扩展名,此代码运行良好,但是当我在 url 末尾添加斜杠时,它显示错误 500 内部服务器错误

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php

请帮我

4

1 回答 1

1

但是当我在 url 末尾添加斜杠时,它会显示错误 500 内部服务器错误

这是因为斜杠在 中被组合在一起,(.*)然后被 引用$1,因此请求如下:

http://your.host.com/my_file/

正在重写为:

http://your.host.com/my_file/.php

原因是条件%{REQUEST_FILENAME}\.php存在,因为尾部斜杠被忽略。你只需要在你RewriteRule的正则表达式中包含与尾部斜杠的匹配:

RewriteRule ^(.*?)/?$ $1.php
于 2012-08-15T18:13:54.847 回答