Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.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
Apache-mod_重写文件扩展名重写_Apache_.htaccess_Mod Rewrite - Fatal编程技术网

Apache-mod_重写文件扩展名重写

Apache-mod_重写文件扩展名重写,apache,.htaccess,mod-rewrite,Apache,.htaccess,Mod Rewrite,对于重写扩展,我发现了以下一组规则 RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule (.*) $1.php [L] 但是,对于不存在的文件/目录,这些规则失败了,因为它们在每次重定向后都会在无限循环中添加.php 是否可以更改现有规则以修复此问题,或者我是否需要删除L标志,然后添加另一个条件和规则以检查*.php文件是否存在 我使用的是apache 2.2,因此END标志不适

对于重写扩展,我发现了以下一组规则

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) $1.php [L]
但是,对于不存在的文件/目录,这些规则失败了,因为它们在每次重定向后都会在无限循环中添加
.php

是否可以更改现有规则以修复此问题,或者我是否需要删除
L
标志,然后添加另一个条件和规则以检查
*.php
文件是否存在

我使用的是apache 2.2,因此
END
标志不适用

是否可以通过修改现有规则来解决此问题,或者我是否需要删除L标志,然后添加另一个条件和规则来检查*.php文件是否存在

不要删除
L
标志,正如您所说,在应用规则之前,您应该添加条件来检查不存在的文件是否为
.php
,但不是在规则之后,如下所示:

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule (.*)  $1.php [L]