1

我们正在使用在asp.net 4中开发的带有URL重写扩展的CMS应用程序。我们的应用程序正在承载数千个CMS页面,并且在解决方案中,Response.Redirect已广泛用于包含大写字母的网址。 关于使用URL重写规则将请求的URL转换为小写字母,从而导致其URL中任何带有大写字母的页面的301状态码,这对SEO视角不利。Response.Redirect拦截

所以我期待着从单个位置拦截那些所有Response.Redirect调用的方法,即从全局文件中将它们转换为小写,然后转入代码文件并将所有URL转换为response.redirect方法为小写。

+0

也许你可以在global.asax文件中处理application_beginrequest或application_prerequesthandlerexecute? – Monah 2014-11-06 20:21:50

+0

邑多数民众赞成我期待着用逻辑实现IHttpModule拦截这些重定向调用。 – 2014-11-06 20:44:31

+0

检查这篇文章,可能会帮助你希望http://msdn.microsoft.com/en-us/magazine/cc301704.aspx – Monah 2014-11-06 20:52:09

回答

0

进入MSDN并挖出Response.Redirect后,设置位置Header,它支持get/set。

void Application_EndRequest(object sender, EventArgs e) 
{ 
    HttpApplication application = sender as HttpApplication; 
    HttpContext context = application.Context; 

    if (context.Response.IsRequestBeingRedirected) 
    { 
     string redirectedLocation = context.Response.Headers["Location"]; 
     context.Response.Headers["Location"] = redirectedLocation.ToLowerInvariant(); 
    } 

}