将大写网址重定向为小写,但*** - htaccess除外

时间:2016-02-12 09:26:45

标签: regex .htaccess redirect expressionengine

我试图将大写网址重定向为小写,但却有点噩梦! (主要是因为缺乏我的.htaccess知识!)

目前我有:

<IfModule mod_speling.c>
CheckSpelling on
</IfModule>

RewriteEngine On
RewriteMap  lc int:tolower
RewriteCond %{REQUEST_URI} [A-Z]
RewriteRule (.*) ${lc:$1} [R=301,L]

哪种方法可以正常使用,但我使用的CMS会在网址中添加分页链接,例如http://website.com/blog/P8http://website.com/blog/P10,因为网址有大写字母P(似乎被要求)他们是404或301重定向。

我是否可以添加一条规则,使其无法获取具有P并且后面至少有一个数字字符的网段?可能是正则表达式?

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:2)

您可以像这样创建一个例外:

DO 
BEGIN
....
DECLARE CURSOR C1 AS .....
....

END

或使用否定前瞻:

RewriteEngine On

RewriteMap lc int:tolower

RewriteCond %{REQUEST_URI} [A-Z]
RewriteCond %{REQUEST_URI} !/P\d+/?$ [NC] 
RewriteRule (.*) ${lc:$1} [R=301,L]