mod_rewrite - change URL case

apache, mod-rewrite

Solution

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]

Problem

Is there any straightforward way to change the case of any URL using mod_rewrite? I thought this was pretty trivial... apparently not. Examples: http://example.com/id to http://example.com/ID http://example.com/id/123 to http://example.com/ID/123 and so forth.

Original source