.htaccess重写规则区分大小写

时间:2017-07-07 16:18:48

标签: .htaccess

我有以下重写规则:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/.]+)/?$ /pages/acticle.$1.php [L]

目前它区分大小写。我需要删除此限制。我尝试将[L]更改为[NC,L],但它没有用。我错过了什么?

1 个答案:

答案 0 :(得分:1)

您的模式不包含任何套接字符,因此添加NC将不起作用。如果您的RewriteRule用于^abcde,并且您希望它也与ABCDE匹配,那么在规则中添加NC即可。

示例中的模式匹配任何非./一次或多次的字符,然后将其添加到article.$1.php结果中。默认情况下,它会直接采用匹配的内容,因此abc = article.abc.phpABC = article.ABC.php,依此类推。

我猜测您的所有文章文件名都是小写的,并且您想要将ABCAbC重写为abc,从而导致文件的一致命名 - 两者都获得article.abc.php。如果是这样,有几个选项listed on this page - 在.htaccess中使用循环以在继续之前将小写替换为小写,在RewriteMap中使用http.conf,或使用{{ 1}}。