A few months ago, a client asked that their .NET site have all its URIs lower-cased for search-engine optimization purposes.
This was an existing site with a lot of files, already in SVN. SVN in Windows is wonky (by which I mean, terribly broken) when it comes to changing the case of filenames, so I decided to go for a programmatic solution to the renaming.
I ended up with the following:
void Application_BeginRequest(object sender, EventArgs e)
string currentURL = Request.RawUrl.ToLower();
if ((currentURL != Request.RawUrl) && (!currentURL.Contains(".axd")))
Response.Status = "301 Moved Permanently";