0

多年来,我一直在使用相同的 .htaccess 来控制 apache 上的 url 重写,但是现在我收到以下错误:

[Wed May 08 17:14:16 2013] [warn] RewriteCond: NoCase option for non-regex pattern '-f' is not supported and will be ignored.

[Wed May 08 17:14:16 2013] [warn] RewriteCond: NoCase option for non-regex pattern '-d' is not supported and will be ignored.

[Wed May 08 17:14:16 2013] [warn] RewriteCond: NoCase option for non-regex pattern '-l' is not supported and will be ignored.

我的 .htaccess 如下:

# << Friendly URL's

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php

# >> Friendly URL's

#RewriteCond %{HTTP_HOST} ^mydomain\.com\.br$ [OR]
#RewriteCond %{HTTP_HOST} ^www\.mydomain\.com\.br$
#RewriteRule ^/?$ "http\:\/\/www\.mydomain\.com\.br\/" [R=301,L]

RewriteCond %{HTTP_HOST} !^www.mydomain.com.br$
RewriteRule ^(.*)$ http://www.mydomain.com.br/$1 [R=301]

由于我对 .htaccess 的用法了解不多,所以我不知道发生了什么。事实上,我很久以前就了解了一些关于 .htaccess 的知识来构建这个文件,但是它不再起作用了。有人可以帮我解决这个错误吗?

首先十分感谢!

4

1 回答 1

2

警告消息不适用于您显示的 .htaccess 文件中的任何行,因为没有为任何语句设置NoCase ( NC ) 选项。

它们必须来自其他一些 .htaccess 文件或 apache 配置文件,如果您与他人共享服务器,可能与您无关。在任何情况下,警告消息并不表示有任何严重问题,只是在不需要且无效的地方输入了 NC 选项。

如果它是您自己的服务器或者您可以控制它,您可以检查这些其他文件并查找RewriteCond包含-d-f-l并且具有NC选项的语句。然后安全地删除NC选项以摆脱警告消息。例如改变

RewriteCond %{REQUEST_FILENAME} !-f [NC]

RewriteCond %{REQUEST_FILENAME} !-f

可以在此处找到有关这些警告消息的更多信息。

于 2013-05-11T07:04:48.127 回答