Avoid uppercase letters in your Episerver page URL

For a number of reasons it's widely recommended to use all lowercase URL's inside a web site. Unfortunately Episerver out of the box uses the same casing as the entered PageName (unless you modify the URL manually).

In order to always get a lowercase URL here's some code we've been using for ages. Hook it up on the SavingPage and CreatingPage events and make your web site a little bit better.

using EPiServer.Web;
..
if (string.IsNullOrEmpty(page.URLSegment))
{
    page.URLSegment = UrlSegment.CreateUrlSegment(page);
}

if (!string.IsNullOrEmpty(page.URLSegment))
{
    page.URLSegment = page.URLSegment.ToLower();
}

if (page.URLSegment.Contains("--"))
{
    page.URLSegment = Regex.Replace(page.URLSegment, "--+", "-");
}

UPDATE 1: Check out Joel's blog post for a complete example compatible with Episerver 7.

UPDATE 2: Check out the CreatedUrlSegment event.

Published and tagged with these categories: Episerver, ASP.NET