Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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)));
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        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);
        }