基于混合的Apache重写规则

时间:2012-10-22 10:31:17

标签: regex apache mod-rewrite apache2

我在这些路径上有一些资源:

/application/myFoo
/application/myBar
总是'我的'后面跟一个大写的名字

我想重定向

/myfoo, /myFOO, /myFoo, (even /foo, /Foo if possible)

到第一个,同样用于第二个URL

RewriteRule ^/my(.*) /application/my$1 [L,NC]

目前是我的解决方案,适用于/ myFoo,/ mYFoo,但也适用于/ myfoo,/ foo

参考:mod_rewrite - change URL case(因为我不希望所有%{REQUEST_URI}大写

,所以有点不同

1 个答案:

答案 0 :(得分:1)

这是一种可能的解决方案

RewriteEngine   On
RewriteMap uppercase int:toupper
RewriteMap lowercase int:tolower
RewriteCond %{REQUEST_URI} !^/(lib|system|application)/
RewriteRule ^/?(?:my)?([a-z])(.*) /application/my${uppercase:$1}${lowercase:$2} [L,NC]