The best option is mod_spelling
, which will allow you to ignore case and have up to 'one misspelling' in a URL. It may be beyond your skills or access to the box, however. If it is already installed, try just sticking CheckSpelling on
in an htaccess file for your site.
Or you could make it conditional by checking to see if mod_spelling is available, and if it is turn it on:
You could do it (though not truly) through mod_rewrite in htaccess, but it would be pretty inefficient and be too heavy for what I would want to use...but it is doable.
The real reasons you can't do it is that regex and substitution patterns need a per character pattern. Second, making them all upper or all lower case dynamically will not really help with case in
sensitive URLs, because the case that is typed in must access the case as it exists in the file-system (and making it all lc or all uc will not necessarily get the filename as it truly exists). Mod-spelling is the best way to go.
Like I said, you could do it through mod_rewrite, but it would be extremely heavy and nasty...it would perform this extremely heavy and nasty check with EVERY SINGLE FILE ACCESS on your site (though you could make it semi-smart and order it not to check certain file types, but what about the case sensitivity of those file types?).
The real and best way is to use all lowercase for your directories and file names, period.