Jump to main navigation

mod_rewrite changes url to lower-case in Windows


Using mod_rewrite to ensure canonical URL's in my CMS, I run across a strange behavior (bug?) of mod_rewrite. It seems that in Windows and under certain circumstances, it changes the case of the URL to lowercase. While this normally won't be a problem (Windows URL's are case insensitive) it can have undesirable effects if you need process the URL with PHP, for example.

Here's the code:

RewriteEngine On
RewriteBase /

# Add trailing slash
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ $1/ [R=301,L]

With this rewrite rule, a url such as /someFolder/page gets rewritten as /somefolder/page/ (note the lowercase 'f' in somefolder).

Now if I want to process the URL with PHP, and I look for "someFolder", I won't find it unless I use a case insensitive search, which might or not be possible.

I couldn't find much info about this issue on the internet, but in a forum (which I can't find anymore) I read that mod_rewrite changes the case of the URL for efficiency purposes when comparing strings. Which seems like a safe thing to do but it turns out to be problematic in some cases.

I suppose this won't happen in Linux (I'd like to test it some time), so it's only a problem while I develop on Windows, which is one more reason to start thinking of switching to Linux soon... :)

You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

Comments to “mod_rewrite changes url to lower-case in Windows”

No comments so far.

Add a comment

Allowed XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <blockquote cite=""> <code> <em> <p> <strike> <strong>

To prove you're a person (not a spam script), type the answer to the math equation shown in the picture. Click on the picture to hear an audio file of the equation.
Click to hear an audio file of the anti-spam equation =

Additional content and navigation


Main navigation menu