2010-03-02 20 views
0

客戶發送了一封電子郵件,其中包含我們運行的網站的拼寫錯誤[例如, http://example.com/?id=123]。重定向訪問錯誤網址的任何人的最佳方式是什麼?如何在C#中編寫全局重定向?

如果有人點擊鏈接,我們可以在Global.asax中檢查它,檢查路徑是否以「。」結尾。然後將其刪除並重新定向?如果是這樣,全球應該在哪裏?

如果另一種方法更好,我很高興聽到它;最重要的是速度,因爲這是需要儘快消​​滅在萌芽狀態!

+1

問這對ServerFault - 管理員會給你這種問題更好的答案。 –

+0

它是在路徑中還是在查詢字符串中(你的例子在查詢字符串中)? – jball

+0

感謝Raj的建議。我會在將來的任何問題中考慮到這一點。 在這個實例jball中,它在查詢字符串中。 – Rich

回答

2

它不是處理的最好的解決方案,但是您可以在global.asax文件中使用Application_BeginRequest。如果你使用的是IIS 7.0

,更好的辦法是URL Rewriting

+0

不幸的是,該網站的服務器只有IIS 6.所以我按照您的建議重新測試並重新指定了Application_BeginRequest現在它正在工作。你或者任何人知道這次測試的性能打擊嗎?我想它會被稱爲helluva很多... – Rich

0

你需要使用類似的ISAPI_Rewrite爲URL重寫在IIS(如果IIS 6),因爲我不知道,這一要求甚至會被.NET與擴展

+0

只是一個參考,但在這種情況下,我會假設他們有一個Default.aspx上面的URL實際上會調用。所以ASP.Net會得到請求。 – TJMonk15

+0

當然,有道理。雖然如果通過重寫來完成,您可以使其成爲301永久重定向,這對搜索引擎更好用 –

0

如果你碰巧沒有IIS 7.0,你可以隨時使用的ISAPI_Rewrite(免費版)。主要工作在正則表達式上,你可以重定向或重寫任何URL。

http://www.helicontech.com/isapi_rewrite/

+0

如果他們的網絡服務器甚至有2個網站,精簡版將無法正常工作,或者我猜可能會導致問題在路上... – TJMonk15

+0

它可能會工作,但它需要在配置文件中進行一些調整 – ALOToverflow