2009-06-18 57 views
3

我想知道是否有解決方案使用IIS6爲應用程序擺脫url中的default.aspx文本。因此,例如,如果用戶點擊:從URL中隱藏default.aspx

www.website.com/default.aspx

瀏覽器只顯示:

www.website.com/

不管是什麼。 這只是爲了SEO。

我已經在我的應用程序中使用UrlRewriting.NET進行了一些重寫,但因爲我並不聰明爲此創建規則。

任何幫助是非常讚賞。

謝謝。 Jose

+0

忽略我的回答,我沒有看到IIS6.0的要求 – Ayyash 2009-07-02 22:25:02

回答

1

如果您有什麼要做URL重寫,那麼您需要做的就是確保您的鏈接指向正確的URL。

如果你沒有修復你的鏈接,它可以由瀏覽器決定是否要顯示它請求的實際鏈接。

如果你真的想做一個狡猾的工作,你可以使用一些JavaScript來使瀏覽器的地址欄顯示任何你喜歡的,即使它是無效的。

0

我會這樣做的方式是在公共類Global:System.Web.HttpApplication中使用Application_BeginRequest,並檢查HttpContext.Current.Request.URL爲default.aspx,然後使用HttpContext.Current.Response.Redirect那裏如果你找到它。

缺點是重定向並不總是如此之好,如果您要將數據發佈到default.aspx頁面,這不會起作用。但是,您不能簡單地誘使瀏覽器顯示不同的url,但您可以告訴ASP.NET爲任何請求提供您想要的任何頁面。

+0

它不工作得很好,它可能會導致無限的重定向。 謝謝! – JRGuay 2009-07-03 14:52:55

1

如果default.aspx被設置爲在IIS中提供的默認文檔,並且您的所有內部網站鏈接都包含URL的而不是 default.aspx,那麼我認爲應該這樣做。

儘管用戶仍然可以輸入default.aspx,但搜索引擎蜘蛛應該從鏈接href屬性中選取友好的URL。

3

我認爲ScottGu已經在ASP.NET中覆蓋了重寫主題:http://weblogs.asp.net/scottgu/archive/2007/02/26/tip-trick-url-rewriting-with-asp-net.aspx

他涵蓋的東西,如:

  • 使用UrlRewriter.net重寫,ISAPI重寫
  • ASP.NET技巧,回發(命中URL的友好版本)

隨着你的問題,我認爲你需要使用的組合,從來沒有鏈接到'default.aspx'ie。只鏈接到'/'。然後使用Scott的表單回傳瀏覽器文件來確保回發始終打開相同的友好版本的網址。

重定向'默認。aspx'轉換爲'/',然後通過'default.aspx'獲得服務,聽起來像是一場災難。只需修復你的鏈接,以確保你永遠不會明確地結束'default.aspx'。

+0

嗨布倫丹。 我之前曾與斯科特的文章合作建立SEO規則,但它不適用於隱藏默認頁面名稱。它只是不起作用。 無論如何,謝謝。 – JRGuay 2009-07-03 14:47:15

2

我認爲改變搜索結果索引(假設它知道HTTP 301)最簡單的方法是在default.aspx的Page_Load中編寫一個小函數,使用301永久移動(或302移動臨時)重定向瀏覽器, 。

void Page_Load(...) { 

    if(Request.Path.EndsWith("default.aspx", true/*case-insensitive*/, null)) { 
     Response.StatusCode = 301; 
     Response.StatusDescription = "Moved Permanently"; 
     Response.Headers.Add("Location", "/"); 
     HttpContext.Current.ApplicationInstance.CompleteRequest(); // end the request 
    } 

    // do normal stuff here 
} 
+0

謝謝傑夫。 我認爲你的解決方案非常好,但我得到了無限重定向的錯誤。 謝謝。 – JRGuay 2009-07-03 14:46:11