Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.htaccess 隐藏文件扩展名不适用于htaccess_.htaccess - Fatal编程技术网

.htaccess 隐藏文件扩展名不适用于htaccess

.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

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

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和用户代理吗?