我是新手使用URL Rewrite模块,我遇到的问题是我认为对论坛帖子进行简单的URL重写(使用IIS 7.5)
我需要改写:
/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 :(得分:1)
使用第一个网址时,{R:4}
和{R:5}
为空是正确的。这是因为这些字段没有值。 RegEx仍然匹配,因此URL仍将被重写。您的代码应该正确处理post
和postType
查询字符串参数的空值,以显示整个线程,而不仅仅是一个特定的注释(至少我认为假设会发生这种情况)。
顺便说一下,更合乎逻辑的URL结构是:
/forum/100/2534/friendly-thread-title/comment/334
这不会帮助你解决这个特殊问题,但只是侧面说明。