2013-02-21 76 views
0

我是新來使用URL重寫模塊,我有麻煩與我認爲將是一個簡單的URL重寫爲論壇主題(使用IIS 7.5)IIS網址重寫 - 需要幫助重寫友好的網址爲一個論壇

我需要重寫:

/forum/100/2534/friendly-title 

或:

/forum/100/2534/334/comment/friendly-thread-title 

到:

/forum/?forum=100&thread=2534&post=334&postType=comment 

我寫了(不工作)的規則是:

^forum/([1-9][0-9][0-9]*)/([1-9]*)/(([1-9]*)/(post|comment)/)?([a-zA-Z0-9-]{5,50})$ 

映射到:

/forum/?forum={R:1}&thread={R:2}&post={R:4}&postType={R:5} 

我得到一個404錯誤。

+0

我測試了正則表達式並且它完成了所有的值,但是當我嘗試映射第一種類型的友好URL時,R:4和R:5是NULL。 – Redtopia 2013-02-21 04:58:31

回答

1

當您使用第一個URL時,{R:4}{R:5}爲空是正確的。這是因爲這些字段沒有值。 RegEx仍然匹配,但URL仍然會被重寫。你的代碼應該正確處理postpostType查詢字符串參數的空值,以顯示整個線程,而不僅僅是一個特定的註釋(至少我認爲是假設發生的)。

順便說一句,一個更合乎邏輯的URL結構將是:

/forum/100/2534/friendly-thread-title/comment/334 

這不會幫助你這個這個特定的問題,但只是在一個方面說明。

+0

謝謝......我想到了這個URL結構,但我不確定當標題總是在最後時它更適合搜索引擎優化。你知道嗎?你知道什麼可能會導致我的問題? – Redtopia 2013-02-21 15:57:55

+0

你有任何想法如何調試?我試過做最簡單的重寫,^ forum /(100)(/?)$ - >/forum /,當我訪問http://testing.domain.com/forum/100時,我得到了相同的結果。 – Redtopia 2013-02-21 16:28:11

+1

@Redtopia你可以使用[失敗請求追蹤工具](http://www.iis.net/learn/extensions/url-rewrite-module/using-failed-request-tracing-to-trace-rewrite-rules) – cheesemacfly 2013-02-21 16:30:22