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(); 
    } 

}