.htaccess 隐藏文件扩展名不适用于htaccess
我正在使用mod_rewrite来隐藏文件扩展名。这段代码运行良好,但当我在url末尾添加斜杠时,显示错误500内部服务器错误.htaccess 隐藏文件扩展名不适用于htaccess,.htaccess,.htaccess,我正在使用mod_rewrite来隐藏文件扩展名。这段代码运行良好,但当我在url末尾添加斜杠时,显示错误500内部服务器错误 RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME}\.php -f RewriteRule ^(.*)$ $1.php 请帮帮我 但当我在url的末尾添加斜杠时,它显示错误500内部服务器错误 RewriteEngine on RewriteCond
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
请帮帮我
但当我在url的末尾添加斜杠时,它显示错误500内部服务器错误
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
这是因为斜杠在(.*)
中分组在一起,然后被$1
引用,因此请求如下:
http://your.host.com/my_file/
正在被改写为:
http://your.host.com/my_file/.php
原因是存在条件%{REQUEST_FILENAME}\.php
,因为尾部斜杠被忽略。您只需要在您的重写规则的正则表达式中包含与尾部斜杠的匹配:
RewriteRule ^(.*?)/?$ $1.php
看看你的服务器的错误日志-它会有更多的细节,但毫无疑问,你在重写内容中引入了一个语法错误。这不是我的代码,我也从不同的博客中找到了,但这不能正常工作。除了没有错误日志之外,还有我的Ip和用户代理吗?