2010-05-30 85 views
2

我想從任何可能有它的請求中刪除default.aspx。從請求中刪除default.aspx

protected void Application_BeginRequest(object sender, EventArgs e) 
     { 
      HttpContext context = HttpContext.Current; 
      string url = context.Request.Url.ToString(); 

      // remove default.aspx 
      if (url.EndsWith("/default.aspx", StringComparison.OrdinalIgnoreCase)) 
      { 
       url = url.Substring(0, url.Length - 12); 
       context.Response.Redirect(url); 
      } 

     } 

給出了一個錯誤:

**too many redirects occurred trying to open...** 

我可以改變什麼,使工作?

日Thnx

回答

3

k明白了。

而不是使用:

string url = context.Request.Url.ToString(); 

我想:

string url = context.Request.RawUrl.ToString(); 

和WORKS!連同你們說的:)

1

我認爲,如果你把重定向裏面的,如果你沒有對付無限重定向。

+0

試過了。同樣的事情發生。 – b0x0rz 2010-05-30 16:15:23

1

你無休止地重定向。

每次執行下一行時,Application_BeginRequest事件再次被觸發。

context.Response.Redirect(url); 

將重定向放入if語句中,像這樣。

if (url.EndsWith("/default.aspx", StringComparison.OrdinalIgnoreCase)) 
{ 
    url = url.Substring(0, url.Length - 12); 
    context.Response.Redirect(url); 
} 
+0

試過。同樣的事情發生。 – b0x0rz 2010-05-30 16:14:48

+0

可能是default.aspx被附加,因爲它被列爲默認頁面。如何避免它? – b0x0rz 2010-05-30 16:16:15