I would like to start a discussion about the pros and cons of making apache (on linux) deal eloquently with capital letters in a URL.

I had a user submit a trouble ticket saying that our web server must be broken because http://example.com/example.html works but http://mysite.com/EXAMPLE.html does not.

Obviously, after some google searches, I found that this indeed is not the sign of a broken web server, that URI's are defined to be case-sensitive.

So I searched for some possible solutions to get around this. I found I could:

  1. Install mod_speling
  2. Use mod_rewrite to convert all urls to lowercase
  3. Use a script in the 404 error page to detect a capital letter in the url, and if there is, suggest the lowercase equivalent.

I talked to my sys admin to see what he thought about all this and he's not feeling it at all. He doesn't like the fact that there are probably some miscellaneous scenarios that would produce unpredictable results. He also thinks people shouldn't have to memorize URLs in the first place.

So, then I tried to find some good arguments I could possibly give my user supporting why I shouldn't "fix" this for him. Here are the ones I've found:

  1. the URI specification itself says that URLs are case-sensitive and why mess with specifications?
  2. the two different urls will be cached separately by proxies, which could make things inefficient and result in the server taking more hits than it needs.
  3. my sys admin's argument that it could produce unexpected results in some situations.

However, I know he's going to come back at me with a usability argument. But I really don't want to do something that my sys admin is uncomfortable with...even though he said ultimately it is up to me.

I'm curious to know other people's take on the situation.

Systems and software are for users, not system admins. I'm a systems admin and I like what Joel Spolsky said in his last newsletter - "Kathy Sierra taught me that if you can't explain your mission in the form, 'We help $TYPE_OF_PERSON be awesome at $THING,' you are not going to have passionate users."