客戶發送了一封電子郵件,其中包含我們運行的網站的拼寫錯誤[例如, http://example.com/?id=123。]。重定向訪問錯誤網址的任何人的最佳方式是什麼?如何在C#中編寫全局重定向?
如果有人點擊鏈接,我們可以在Global.asax中檢查它,檢查路徑是否以「。」結尾。然後將其刪除並重新定向?如果是這樣,全球應該在哪裏?
如果另一種方法更好,我很高興聽到它;最重要的是速度,因爲這是需要儘快消滅在萌芽狀態!
客戶發送了一封電子郵件,其中包含我們運行的網站的拼寫錯誤[例如, http://example.com/?id=123。]。重定向訪問錯誤網址的任何人的最佳方式是什麼?如何在C#中編寫全局重定向?
如果有人點擊鏈接,我們可以在Global.asax中檢查它,檢查路徑是否以「。」結尾。然後將其刪除並重新定向?如果是這樣,全球應該在哪裏?
如果另一種方法更好,我很高興聽到它;最重要的是速度,因爲這是需要儘快消滅在萌芽狀態!
它不是處理的最好的解決方案,但是您可以在global.asax文件中使用Application_BeginRequest。如果你使用的是IIS 7.0
,更好的辦法是URL Rewriting
不幸的是,該網站的服務器只有IIS 6.所以我按照您的建議重新測試並重新指定了Application_BeginRequest現在它正在工作。你或者任何人知道這次測試的性能打擊嗎?我想它會被稱爲helluva很多... – Rich
你需要使用類似的ISAPI_Rewrite爲URL重寫在IIS(如果IIS 6),因爲我不知道,這一要求甚至會被.NET與擴展
只是一個參考,但在這種情況下,我會假設他們有一個Default.aspx上面的URL實際上會調用。所以ASP.Net會得到請求。 – TJMonk15
當然,有道理。雖然如果通過重寫來完成,您可以使其成爲301永久重定向,這對搜索引擎更好用 –
如果你碰巧沒有IIS 7.0,你可以隨時使用的ISAPI_Rewrite(免費版)。主要工作在正則表達式上,你可以重定向或重寫任何URL。
如果他們的網絡服務器甚至有2個網站,精簡版將無法正常工作,或者我猜可能會導致問題在路上... – TJMonk15
它可能會工作,但它需要在配置文件中進行一些調整 – ALOToverflow
問這對ServerFault - 管理員會給你這種問題更好的答案。 –
它是在路徑中還是在查詢字符串中(你的例子在查詢字符串中)? – jball
感謝Raj的建議。我會在將來的任何問題中考慮到這一點。 在這個實例jball中,它在查詢字符串中。 – Rich