2012-04-02 89 views
1

我用下面的代碼在我Global.asax文件URL重寫:301重定向原始URL請求路由URL

routes.MapRoute(
       "BlogArticle", 
       "Blog/Article/{filename}", 
       new { controller = "Blog", action = "Article" } 
       ); 

這意味着以下網址:

/博客/條/博客,文章標題

將加載以下操作:

/博客/條?文件名=博客,文章標題

我注意到,原來的URL路徑仍然會載入我的網頁。

如果在網站上線幾個月後將網址重寫添加到網站,這可能會導致問題。 Google已經抓取了原始網址,並且現在當它抓取網站上的新網址時,它會將其分類爲duplicate content

我想到原始URL現在會自動重定向到重寫的URL,但它沒有。

我認爲這將是有意義的東西這樣的內置到ASP.NET MVC的核心,因爲我沒有看到仍然有原始URL可獲得的優點,並沒有重定向到重寫URL 。這有沒有什麼原因沒有完成?

另外,如何防止原始URL加載內容?有沒有一種方法,我可以得到它301 permanent redirect重寫URL?

回答

1
routes.MapRoute(
       "BlogArticle", 
       "Blog/Article/{filename}", 
       new { controller = "Blog", action = "Article" } 
       ); 

嘗試這種更清潔的URL,然後在你的行動

routes.MapRoute(
      "BlogArticle", 
      "Blog/Article/{filename}", 
      new { controller = "Blog", action = "Article", filename = UrlParameter.Optional} 
      ); 
+0

這是否解決了多個URL的問題了相同的內容請求的文件名作爲參數,或者這只是幫我整理的代碼? – Curt 2012-04-02 10:11:03

+0

Mabye我missunderstod你的問題,這可以幫助你得到一個更乾淨的網址,如果你想這條路線處理多個行動,你可以有「博客/ {Article}/{文件名}」,新.. – mattematico 2012-04-02 10:14:44