Yeti
Yeti

Reputation: 5818

mod_rewrite - change URL case

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.

Upvotes: 3

Views: 4612

Answers (3)

Yeti
Yeti

Reputation: 5818

I was looking to change case of only the ID. This one did the trick:

RewriteRule ^id(.*)$ /ID$1  [QSA,R,L]

Upvotes: 2

Gumbo
Gumbo

Reputation: 655707

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]

Upvotes: 3

Zed
Zed

Reputation: 57678

RewriteMap uppercase int:toupper
RewriteRule ^/(^/)*$ /${uppercase:$1}  [L]
RewriteRule ^/([^/]*)/(.*)$ /${uppercase:$1}/$2 [L]

(syntax unchecked)

Upvotes: 1

Related Questions