2008-12-17 55 views
2

我想最好的辦法是什麼,我希望有用戶類型「URL重寫」 /路由與.NET 3.0和IIS 6.0

http://myserver/something/20

和重定向的情況下(301或302)以

http://someotherserver/applications/something/modules/default.aspx?id=20

對於.NET 3.5和IIS 7,我發現了一些解決方案,但不幸的是我堅持的.NET 3.0和Windows 2003的IIS 6.0,而我不希望在其上安裝任何東西服務器如果可能。儘管如此,我可以更改虛擬目錄的設置,並且如果必須爲整個站點設置。

的HttpModules和web.config中的ASP.net只是如果我不就大錯特錯了,因此這將不利於爲/ 20不被髮送到ASP.net每默認?

誰能給我一些建議,我可以建立類似的東西?

回答

3

我已經看到了這樣做,而無需把301重定向直接到IIS管理器中的唯一方法是使用通配符映射

Link

1

你可能爭取ASP的援助。

與內容的一些文件夾中創建一個文件404.asp -

<% 

Dim id : id = CLng(Mid(Request.QueryString, InStrRev(Request.QueryString, "/")+1)) 
Response.Redirect "http://someotherserver/applications/something/modules/default.aspx? id=" & id 

%> 

在IIS管理器中的調整的一些文件夾的自定義錯誤URL和/something/404.asp

注意傳遞給客戶的404錯誤頁面的查詢字符串值樣子: -

404; http://myserver:80/something/20

編輯:或者您可以使用404.ashx自定義錯誤頁面,然後使用更熟悉的.NET代碼。

1

.*擴展名映射到應用程序配置中虛擬目錄的文件映射中與.aspx相同的DLL。然後在web.config的httpHandlers部分中,將URL映射到該類型。

1
  1. 在IIS中,右鍵單擊虛擬目錄,選擇屬性。點擊配置...按鈕。
  2. 映射選項卡中,通配符應用程序映射下(執行順序):點擊插入...按鈕。
  3. 瀏覽並選擇C:\ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ aspnet_isapi.dll,請驗證文件是否存在未選中。
  4. 上移 aspnet_isapi.dll到列表頂部。
  5. 點擊好的,好的,試試吧。嘗試回收應用程序池,如果你沒有看到它的工作。

我們遇到了這樣一種情況:.Net路由在我們的開發PC上工作,而不是在IIS 6和Windows 2003的測試和生產服務器上工作。這解決了我們的問題。