非正则表达式的NoCase选项' -f'不受支持,将被忽略

时间:2014-05-27 13:58:59

标签: regex apache .htaccess

我有一个关于我的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]

我将非常感谢能得到的任何帮助。

1 个答案:

答案 0 :(得分:0)

阅读the docs一段时间后:

[NC]标记用于正则表达式匹配规则,但您没有测试正则表达式,如果该文件与-f一起存在,则需要重新测试。 -f不是正则表达式,因此会抛出错误:

  

非正则表达式的NoCase选项' -f'不支持