I encountered something unusual regarding mod_rewrite the other day and was wondering if anyone had any insight...
The following mod_rewrite directive inside an .htaccess file works fine under Unix:
RewriteRule ^hEllo\.pl /cgi-bin/test.pl [L]
It will rewrite a URL of the form www.somedomain.com/hEllo.pl to www.somedomain.com/cgi-bin/test.pl.
BUT under Windows Apache it does not work!
If I change the capital 'E' in the RewriteRule to lower case 'e' under windows then it works but only for www.somedomain.com/hello.pl.
In other words under Windows I cannot apparently use mixed case in my URL's if mod_rewrite is to correctly identify those mixed case URL's and to process them according to RewriteRules.
Any insight as to why this is? I believe it has something to do with the fact that Windows is a case-insensitive operating system in terms of file names. While Unix is case sensitive.
But what exactly is happening under Windows that causes a URL with hEllo.pl to not be found (or mod_rewritten) while hello.pl will (if I change the 'E' to 'e')? What is the logic that Windows is following?
Any insight on this?