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