我们正在使用在asp.net 4中开发的具有URL重写扩展的CMS应用程序。我们的应用程序托管了数千个CMS页面,并且在解决方案中,Response.Redirect已广泛用于包含大写字母的URL。 使用URL重写规则将请求的URL转换为小写,导致其URL中包含大写字母的任何页面的301状态代码,这对SEO透视图不利。
所以我期待一种方法来拦截来自单个位置的所有Response.Redirect调用,即从全局文件中调用,并将它们转换为小写,而不是转入代码文件并将所有URL转换为response.redirect方法小写。
答案 0 :(得分: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();
}
}