Is there any straightforward way to change the case of any URL using mod_rewrite?
I thought this was pretty trivial... apparently not.
Examples:
ht
I was looking to change case of only the ID. This one did the trick:
RewriteRule ^id(.*)$ /ID$1 [QSA,R,L]
mod_rewrite has some internal functions you can use for a mapping. One of them is toupper
that converts letters to uppercase:
RewriteMap uppercase int:toupper
RewriteRule [a-z] %{uppercase:%{REQUEST_URI}} [L,R=301]
RewriteMap uppercase int:toupper
RewriteRule ^/(^/)*$ /${uppercase:$1} [L]
RewriteRule ^/([^/]*)/(.*)$ /${uppercase:$1}/$2 [L]
(syntax unchecked)