Case Sensitivity in URLs
Wednesday, October 17th, 2007I am an open source guy - so naturally I prefer the flagship OSS software Apache to the proprietary Microsoft IIS. But there is one area where IIS does a better job than Apache - the case sensitivity of URLs.
Are URLs Case Sensitive?
They should not be - but they sometimes are. Domain names are not case sensitive - for example http://www.apache.org/ and http://WWW.Apache.Org/ goes to the same location. But in the LAMP platform, the path is case sensitive…
- http://www.apache.org/foundation/getinvolved.html is not
- http://www.apache.org/Foundation/GetInvolved.HTML
But in the case of Microsoft IIS server, this is not true - try…
- http://www.microsoft.com/WindowsServer2003/IIS/Default.mspx is the same as
- http://www.microsoft.com/windowsserver2003/iis/default.mspx
Reason: Linux Filesystem is Case Sensitive
The root cause of this is that the filesystem in the Linux OS is case sensitive - while FAT32/NTFS filesystems in Windows are not.
Dynamic URLs
Now Dynamic/friendly/clean URLs are appearing in many CMS tools. A good example for this is the ‘permalink structure’ in WordPress. These dynamic URLs could be case sensitive or not - it depends on the software. In WordPress they are case insensitive. Del.icio.us is also case insensitive. TinyURL is another service that uses case insensitive URLs. But it is possible for the tool to make the URLs case sensitive.
From the SEO perspective
If the search bot visits two urls say, example.com/MyWebPage/Index and example.com/mywebpage/index , will the bot index both page contents? If they are same, will one get the duplicate content penalty? Or will google just index the URL with lower case and ignore the other - remember, in Linux/Apache, both pages may have different content.
Conclusion
The RFC for URL says they must be case insensitive.
For resiliency, programs interpreting URLs should treat upper case letters as equivalent to lower case in scheme names (e.g., allow “HTTP” as well as “http”).
Apache must not use the filesystem as an excuse - I really hope they provide case insensitive URLs

