private Uri ValidateSiteUrl(SEOSettingsPart settings, Uri uri) { if (settings.Redirect != RedirectOptions.Domain || string.IsNullOrWhiteSpace(settings.RedirectToSiteUrl)) { return(uri); } Uri requestedUri; try { requestedUri = new Uri(settings.RedirectToSiteUrl); } catch (Exception e) { Logger.Error(e, "Error parsing RedirectToSiteURL, skipping redirect"); return(uri); } if (requestedUri.Host == null || requestedUri.Host.Equals(uri.Host, StringComparison.OrdinalIgnoreCase)) { return(uri); } var builder = new UriBuilder(uri); builder.Host = requestedUri.Host; return(builder.Uri); }
private bool CheckIfIgnored(SEOSettingsPart settings, string url) { if (string.IsNullOrWhiteSpace(settings.IgnoredUrls)) { return(false); } var ignoredUrls = settings.IgnoredUrls.Split(new string[] { "\n" }, StringSplitOptions.RemoveEmptyEntries); return(settings.IgnoredUrls.Split(new string[] { "\n" }, StringSplitOptions.RemoveEmptyEntries).Any(x => url.StartsWith(x))); }
private Uri ValidateWWW(SEOSettingsPart settings, Uri url) { if (settings.Redirect != RedirectOptions.NonWWW) { return(url); } if (url.Authority.StartsWith("www.")) { return(new Uri(url.ToString().Replace("www.", ""))); } return(url); }
private Uri ValidateNonWWW(SEOSettingsPart settings, Uri url) { if (settings.Redirect != RedirectOptions.WWW) { return(url); } if (!url.Authority.StartsWith("www.")) { return(new Uri(url.ToString().Replace(string.Format("{0}://", url.Scheme), string.Format("{0}://www.", url.Scheme)))); } return(url); }
private Uri ValidateSSL(SEOSettingsPart settings, Uri url) { if (!settings.ForceSSL) { return(url); } if (url.ToString().StartsWith("http://")) { return(new Uri(url.ToString().Replace("http://", "https://"))); } return(url); }