Saturday, 26 July 2014 .::. Your IP: 54.196.181.109 
Home Tips & Tricks Howto make Apache case-insensitive

Howto make Apache case-insensitive


As we all know the *nix platforms are case sensitive and this is causing some issues some times. It's the same thing with apache. However there is a cure so no worries :)

In order to make your apache case-insensitive you need to have root access to the box. At least you need sudo.

Firstly login as root and open the configuration file of your apache with your favorite text editor. In most cases the file is:

/etc/apache2/httpd.conf

/etc/apache/httpd.conf

/etc/httpd/httpd.conf

All of these examples are for linux so in *BSD or Solaris I'm not sure what would be the path.

So after you have opened the file you need to check if you have mod_speling.so enabled. It should look like this:

LoadModule speling_module modules/mod_speling.so

It could be loaded from different location so try to search for the word "mod_speling.so" in your text editor to find it.

If it's there as it should be by default there are only 2 more steps. If it's not you need to install it.

Once you have the module installed and loaded you need to drop one more line in the apache configuration file:

CheckCaseOnly on

Once you have put this it will check the case and will make the corrections if needed.

You can set CheckSpelling instead of CheckCaseOnly which actually tries to correct misspelled URLs by performing case-insensitive filename search in requested folder or allowing one misspelling (character insertion/omission/transposition or wrong character).

However keep in mind that if you use the CheckSpelling option

  • the directory scan needed for spelling correction may affect the server's performance when many spelling corrections are performed at a time
  • the document trees should not contain sensitive files which could be matched unintendedly by a spelling "correction"
  • the module is unable to correct misspelled user names - only filenames or folder names
  • spelling corrections are applied strictly to existing files, so a request for /status may be incorrectly treated as "/stats.html" file.

Once you have set the desired option simply restart the apache and test it!

Good luck!


Reddit! Del.icio.us! Mixx! Free and Open Source Software News Google! Facebook! Slashdot! StumbleUpon! TwitThis Joomla Free PHP