public override void Process(Sitecore.Pipelines.HttpRequest.HttpRequestArgs args)
		{
			if(Sitecore.Context.Item == null && !args.Context.Request.Url.AbsolutePath.StartsWith("/sitecore")
			{
				args.Context.Response.Clear();
				SiteContext site = Sitecore.Context.Site;
				if(site != null)
				{
					Item item404Page = Sitecore.Context.Database.GetItem(site.RootPath + "website/error/404");
					if(item404Page != null)
					{
						Sitecore.Context.Item = item404Page;
						args.Context.Response.StatusCode = (int) System.Net.HttpStatusCode.NotFound;
					}
				}
			}
		}
Beispiel #2
0
 public void Process(Sitecore.Pipelines.HttpRequest.HttpRequestArgs args)
 {
     if (Sitecore.Context.Item == null)
     {
         string message = String.Format(
             "{0} : context item null : {1}",
             this.GetType().ToString(),
             Sitecore.Web.WebUtil.GetRawUrl());
         Sitecore.Diagnostics.Log.Error(message, this);
     }
     else if (Sitecore.Context.Site == null)
     {
         string message = String.Format(
             "{0} : context site null : {1}",
             this.GetType().ToString(),
             Sitecore.Web.WebUtil.GetRawUrl());
         Sitecore.Diagnostics.Log.Error(message, this);
     }
     else if (this.LanguageSetFromUrlPath() ||
              this.LanguageSetFromQueryString() ||
              this.LanguageSetFromCookie() ||
              this.LanguageSetFromBrowserPreferences() ||
              this.LanguageSetFromContextSite() ||
              this.LanguageSetFromDefaultSetting() ||
              this.LanguageSetToFirstExistingLanguage())
     {
         if (this.SetCulture)
         {
             System.Threading.Thread.CurrentThread.CurrentUICulture =
                 new System.Globalization.CultureInfo(Sitecore.Context.Language.Name);
             System.Threading.Thread.CurrentThread.CurrentCulture =
                 System.Globalization.CultureInfo.CreateSpecificCulture(Sitecore.Context.Language.Name);
         }
     }
     else
     {
         string message = String.Format(
             "{0} : Unable to determine valid context language : {1}",
             this.GetType().ToString(),
             Sitecore.Web.WebUtil.GetRawUrl());
         Sitecore.Diagnostics.Log.Error(message, this);
     }
 }
Beispiel #3
0
        public override void Process(Sitecore.Pipelines.HttpRequest.HttpRequestArgs args)
        {
            base.Process(args);

            if (Sitecore.Context.Item != null && System.Web.HttpContext.Current != null)
            {
                var url = Sitecore.Context.Item.GetUrl();

                var context = System.Web.HttpContext.Current;
                var rawUrl  = context.Request.RawUrl;

                if (!rawUrl.Contains(url) && !rawUrl.Contains("/sitecore/") && !url.Contains(Sitecore.Configuration.Settings.GetSetting(Constants.Settings.WildcardUrlPlaceholder)))
                {
                    if (!string.IsNullOrEmpty(context.Request.Url.Query))
                    {
                        url += context.Request.Url.Query;
                    }
                    context.Response.RedirectPermanent(url);
                }
            }
        }
		public override void Process(Sitecore.Pipelines.HttpRequest.HttpRequestArgs args)
		{
			if(Sitecore.Context.Item == null && !args.Context.Request.Url.AbsolutePath.StartsWith("/sitecore")
			{
				args.Context.Response.Clear();
				SiteContext site = Sitecore.Context.Site;
				if(site != null)
				{
					Item item404Page = Sitecore.Context.Database.GetItem(site.RootPath + "website/error/404");
					if(item404Page != null)
					{
						WebClient webClient = new WebClient();
						webClient.Encoding = args.Context.Request.ContentEncoding;
						webClient.Headers.Add("User-Agent", args.Context.Request.UserAgent);
						string page = webClient.DownloadString(LinkManager.GetItemUrl(item404Page));
						args.Context.Response.StatusCode = (int) System.Net.HttpStatusCode.NotFound;
						args.Context.Response.Write(page);
						args.Context.Response.TrySkipIisCustomErrors = true;
						args.Context.Response.End();
					}
				}
			}
		}
 public override void SiteProcess(Sitecore.Pipelines.HttpRequest.HttpRequestArgs args)
 {
     Log.Info(Sitecore.Context.Site.Name + " used the 301 redirect Pipeline", this);
 }