2012-06-13 105 views
0

假設我們公司的網站是由asp.net web form v1.1開發的。它運行了近5年。人們通過關鍵詞搜索谷歌,並得到了鏈接來到我們的網站......這意味着谷歌緩存我們網站的所有網頁。現在我們公司計劃用asp.net 4.0開發我們的網站,我們公司的CTO希望使用asp.net 4.0路由功能,以便搜索引擎友好。我知道如何使用網址路由功能....這是網址路由的小示例片段。舊頁面的URL路由和永久頁面重定向

enter image description here

爲我們的新網站頁面的名字將被改變。所以當有人會搜索谷歌和獲得鏈接,當點擊這些鏈接,然後請求會來到我們的網站,但沒有找到頁面將顯示,因爲頁面名稱將被改變。所以如何以這樣的方式編寫邏輯,以便在舊請求到來時路由將重定向到右頁,並且也會因爲下次用戶將獲得正確的頁面url而對google進行永久性重定向。所以我的擔心是如何編寫將用戶驅動到右頁的邏輯,如果舊頁面不存在,用戶將使用路由重定向到右頁。請幫我用代碼&的概念。感謝

回答

0

你需要使用一個HTTP 301永久重定向

使用.NET Framework 4版:

Response.RedirectPermanent("NewPage.aspx"); 

編輯: 我太快有跳下......一個好的MVC的解決辦法是: http://www.eworldui.net/blog/post/2008/04/25/ASPNET-MVC-Legacy-Url-Routing.aspx

這將請求重定向到正確的位置,並返回一個301回...

+0

我想你們不明白我的要求。我需要邏輯,我可以確定請求的頁面是舊的頁面名稱,現在它已經與文件夾結構一起改變。所以當頁面是舊頁面並且現在不可用時,它應該通過路由重定向到右頁面。我希望我清楚自己想要什麼? – Thomas

+2

也許吧。但也許你不明白你收到的答案。當頁面URL更改時,您有兩個主要目標 - 將請求發送到正確的位置,並讓請求者知道該頁面已被永久移動(HTTP 301永久重定向)。如果沒有301,谷歌(和其他推薦人)將繼續發送流量到錯誤的地方 - 一個301,他們知道發送流量到新的位置。您可以通過路由來完成此任務,也可以在IIS中進行處理。 – CJM

0

我不是M的專家VC,事實上首發,讓來到我心中的解決方案,你必須註冊所有路線爲您現有的頁面,如:

routes.MapRoute(
      "BooksCategory", // Route name 
      "products/books.aspx", // URL with parameters 
      new { controller = "Products", action = "Browse", category = "Books" } 
     ); 

您可以根據您的需求提高了。

+0

我想你們不明白我的要求。我需要邏輯,我可以確定請求的頁面是舊的頁面名稱,現在它已經與文件夾結構一起改變。所以當頁面是舊頁面並且現在不可用時,它應該通過路由重定向到右頁面。我希望我清楚自己想要什麼? – Thomas

1

如果你通過MVC做到這一點,你將永遠不得不管理那些舊的路線。我認爲最好的方法是直接在這種情況下使用IIS。 IIS中的url模塊允許您非常輕鬆地配置永久重定向。

+0

我想你們不明白我的要求。我需要邏輯,我可以確定請求的頁面是舊的頁面名稱,現在它已經與文件夾結構一起改變。所以當頁面是舊頁面並且現在不可用時,它應該通過路由重定向到右頁面。我希望我清楚自己想要什麼? – Thomas

0

我建議使用這種工具的混合。你應該返回301,因爲這是一個永久的舉動。當它開始掃描你的新網站時,谷歌應該接受這一點。

我建議你也需要保持你的傳統網站分開,所以他們不會干擾當前的網站。在未來的某個時候,也許當這個新網站成爲遺留網站時,你會想要組織你的網站。通過知道什麼是應用程序需要&搜索引擎優化可能會有所幫助。

你可以使用IIS和它的重定向模塊做你的SEO重定向。另外,請看看谷歌(和Bings)網站管理員工具。他們應該幫助您瞭解搜索引擎在您的網站上看到的內容。

+0

我想你們不明白我的要求。我需要邏輯,我可以確定請求的頁面是舊的頁面名稱,現在它已經與文件夾結構一起改變。所以當頁面是舊頁面並且現在不可用時,它應該通過路由重定向到右頁面。我希望我清楚自己想要什麼? – Thomas