Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm a complete newbie with regard to managing Apache, so excuse me if I'm phrasing something incorrectly.

I have a web site -- say, The problem is that when I try to open in a web browser it displays the page, but when I attempt to access (note capital I), it responds with HTTP 404.

How do I configure Apache to serve both these files (and directories, for that matter) in a case-insensitive manner? Current httpd.conf is here.

EDIT Dan C, thanks for a hint. I basically want to allow users to download files from my server and don't really want them to be aware that Index.html and index.html are in fact different.

I'm also very willing to know as to what are the ramifications of this decision.

share|improve this question
It would be good to add why you wish to do this and whether you wish to apply it to other files as well. – Dan Carley Jul 10 '09 at 14:39

The first thing that comes to mind is mod_rewrite, which is already loaded in your config.

Assuming your files are all in lower case (this may be a dangerous assumption):

RewriteEngine On

RewriteCond %{REQUEST_URI} [A-Z]
RewriteRule ^(.*)$ ${tolower:$1}
share|improve this answer

If you are running apache on a linux server the problem is that it uses the underlying linux case sensitive file system, you could look at ReWrite as mentioned by matt.

Another option is the mod_speling module (yes it is one L) for apache, mentioned > here < but I think that will only look for one spelling error and also might slow access down if there is a lot of files in one directory

Hope that helps

share|improve this answer
If using on Apache 2.2 this can even be limited to case only by using CheckCaseOnly directive. – Jeremy Bouse Jul 10 '09 at 15:46

It doesn't really work with httpd.conf. As said, the problem is that the Linux-filesystem you're on is case-sensitive.

I know of one method that works for sure: Put your web-application into /opt/www/yourapplication

Then make an SMB share of /opt/www for localhost only

then mount the Samba share to /var/www

Samba is for Windows-shares, and windows shares are case-insensitive, so Samba will take care of the case-sensitiviy for you, making everything LOWERCASE internally.

share|improve this answer
Addendum: You can also create a VFAT file system and permanently mount it, see for more information. That way you don't need samba, which means this way it is far more secure and stable. – Quandary Dec 24 '11 at 8:16

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.