protected string GetUrl(Page page) { string url; if (page.PageTemplate.Title.Equals(_config.ExternalUrlTemplate, StringComparison.InvariantCultureIgnoreCase) && page.Metadata != null) { // The Page is a "Redirect Page"; obtain the URL from its metadata. ItemFields meta = new ItemFields(page.Metadata, page.MetadataSchema); ItemFields link = meta.GetEmbeddedField("redirect"); url = link.GetExternalLink("externalLink"); if (string.IsNullOrEmpty(url)) { url = link.GetSingleFieldValue("internalLink"); } } else { url = GetExtensionlessUrl(page.PublishLocationUrl); } return(url); }