我有以下重写规则:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/.]+)/?$ /pages/acticle.$1.php [L]
目前它区分大小写。我需要删除此限制。我尝试将[L]更改为[NC,L],但它没有用。我错过了什么?
答案 0 :(得分:1)
您的模式不包含任何套接字符,因此添加NC
将不起作用。如果您的RewriteRule
用于^abcde
,并且您希望它也与ABCDE
匹配,那么在规则中添加NC
即可。
示例中的模式匹配任何非.
或/
一次或多次的字符,然后将其添加到article.$1.php
结果中。默认情况下,它会直接采用匹配的内容,因此abc
= article.abc.php
,ABC
= article.ABC.php
,依此类推。
我猜测您的所有文章文件名都是小写的,并且您想要将ABC
和AbC
重写为abc
,从而导致文件的一致命名 - 两者都获得article.abc.php
。如果是这样,有几个选项listed on this page - 在.htaccess
中使用循环以在继续之前将小写替换为小写,在RewriteMap
中使用http.conf
,或使用{{ 1}}。