我有一个关于我的htaccess文件和我一直得到的apache警告的问题。
RewriteCond: NoCase option for non-regex pattern '-f' is not supported and will be ignored.
这是我的htaccess文件:
RewriteEngine On
#This will send anything after recruit as a get variable
#www.example.com/recruit123 -> www.example.com/recruit.php?id=/123
RewriteRule ^recruit(.*)$ recruit.php?id=/$1 [QSA,L]
#Add .php extension only for URIs that are not file or
#directories and that are already valid php files.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/$1\.php -f [NC]
RewriteRule ^(.+?)/?$ /$1.php [L]
我在很多帖子中都读到了我需要改变的内容
RewriteCond %{REQUEST_FILENAME} !-f [NC]
到
RewriteCond %{REQUEST_FILENAME} !-f
但是你可以看到,这不是我的情况,因为我的文件有正确的行。
问题是否与
有关RewriteCond %{DOCUMENT_ROOT}/$1.php -f [NC]
我必须添加一个!做到这一点
RewriteCond %{DOCUMENT_ROOT}/$1.php !-f [NC]
我将非常感谢能得到的任何帮助。
答案 0 :(得分:0)
阅读the docs一段时间后:
[NC]
标记用于正则表达式匹配规则,但您没有测试正则表达式,如果该文件与-f
一起存在,则需要重新测试。 -f
不是正则表达式,因此会抛出错误:
非正则表达式的NoCase选项' -f'不支持