2010-01-13 109 views
0

我在IIS6上使用ASP.NET 2.0,因此我無法使用system.web.routing。我已經嘗試了一些URL重寫器,但沒有做到我想要的。如何在沒有URL路由或URL重寫的情況下轉換ASP.NET URL?

基本上,我需要變換(讀/解析然後重定向)URL 以最小的IIS配置,因爲我沒有充分的權力重新配置Web服務器(即ISAP在IIS6或安裝第三方擴展/庫)。而且我無法將URL轉換爲,因爲所有物理鏈接都會中斷。

  1. http://www.url.com/abc123
  2. http://www.url.com/default.aspx?code=abc123
  3. http://www.url.com/abc123/default.aspx?code=abc123

謝謝!

回答

1

創建404錯誤處理程序,例如404.aspx。在該頁面中,使用Request.Path解析請求URL並提取代碼。然後,重定向到default.aspx?code = abc123。

您應該可以爲您的網站設置404(頁面未找到)處理程序爲404.aspx,大多數託管提供商都允許這樣做。

+0

我打算手動在Application_Error(global.asax)中進行解析和重定向,因爲我無法擺脫aspxerrorpath querry字符串,因爲在aspxerrorpath被拋出之前我無法捕獲/ abc123的值,因爲Request.Path是alwasy 404錯誤頁面的URL。 – Jeff 2010-01-14 03:51:06

+0

確保您在IIS中設置了404處理程序,而不是在web.config中。 – 2010-01-14 04:08:14

+0

你是否推薦Application_Error(global.asax)比404?因爲我對網絡服務器沒有太多的控制權,並且我們有超過1個網絡服務器,所以我更喜歡「軟」的方式。對於任何IIS設置更改,需要幾周時間才能獲得批准... – Jeff 2010-01-14 04:16:38

0

我建議你看看UrlRewriter.net使用自定義轉換。 This link詳細說明如何使用Intelligencia.UrlRewriter程序集(大約是頁面下方的3/4)完成此操作。希望能夠滿足您的需求。

+0

我不認爲URL重寫會起作用,因爲我不想重寫URL,我只需要讀取/解析URL然後重定向。 – Jeff 2010-01-14 01:13:19