对于重写扩展,我找到了以下规则集
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) $1.php [L]
但是这些规则对于不存在的文件/目录失败,因为它们在每个重定向以无限循环结束后不断添加.php
。
在现有规则中是否可以更改某些内容以解决此问题,还是需要删除L
标志并在此之后添加另一个条件和规则来检查*.php
文件是否存在?
我使用的是apache 2.2,因此
END
标志不适用
答案 0 :(得分:1)
在现有规则中是否可以更改某些内容以解决此问题,或者我是否需要删除L标志并在此之后添加另一个条件和规则以检查* .php文件是否存在?
不要删除L
标记,正如您所说的那样,在应用之前,您应该添加条件以检查不存在的文件是否为.php
,但是在规则之后不是,如此:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule (.*) $1.php [L]