2012-01-20 42 views
0

我有一個基於文章網站,用戶可以登錄,發表文章等更換web.config中的特殊字符使用Intelligencia UrlRewriter

我使用一個註冊用戶的URL看起來如下(只是舉例):

http://example.com/Author/1234/Screenname 

就像你所看到的,我通過ID(1234)並使用用戶屏幕名稱。

的問題

傳遞的ID是100%的罰款,但一旦用戶有特殊字符或任何不屬於A-Z,它會返回一個404或錯誤的請求的頁面。

有問題的URL

/Screen.name - 我要替換的特殊字符,怎麼就會造成HTTP錯誤。

http://example.com/Author/1234/Screenname. 

我想用Intelligencia UrlRewriter在web.config中(或任何其他的全球性解決方案,例如在global.asa)來代替特殊無效的URL字符。

我當前的web.config文件重寫代碼:

<rewrite url="^~/Author/(.+)/(.+)" to="~/Contributor_Profile.aspx?auID=$1&amp;auN=$2" processing="stop" permanent="true"/> 
+0

問題是你需要在查詢字符串URL編碼參數試試這個。我不知道這個Intelligencia的東西,但你應該嘗試看看它是如何做到的。 – fge

+0

根據fge的評論,這裏的問題可能是URL中的無效字符,而不是URL重寫模塊(我們實際使用它)。有關URL中的有效和無效字符,請參閱http://stackoverflow.com/questions/1547899/which-characters-make-a-url-invalid。哪些角色遇到問題? – rrrr

+0

感謝您的意見。我知道問題出在網址中,但是我的客戶現有數據無法更改。這就是爲什麼我想在地址欄加載之前替換字符,以避免任何問題。 –

回答

0

在你的web.config

<httpRuntime relaxedUrlToFileSystemMapping="true" /> 
+0

謝謝你。但我忘了提及我正在使用.net 3.5 –

+0

從我[讀](http://social.msdn.microsoft.com/Forums/en-US/netfxbcl/thread/5206beca-071f-485d-a2bd-657d635239c9 /)這個問題似乎歸結於Uri類的問題。您可以升級到.NET 4.0並實現上述選項,或者看起來有[解決方法](http://social.msdn.microsoft.com/Forums/en-US/netfxbcl/thread/5206beca-071f-485d -a2bd-657d635239c9 /),我還沒有嘗試過。 – rrrr

+0

感謝您的幫助。我會接受你的答案,因爲我必須轉換爲4.0。和/或檢查解決方法。乾杯好友 –