0

我是使用 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 错误。

4

1 回答 1

1

这是正确的,{R:4}{R:5}您使用第一个 URL 时为空。那是因为这些字段没有值。RegEx 仍然匹配,因此 URL 仍将被重写。您的代码应该正确处理postpostTypequerystring 参数的空值以显示整个线程,而不仅仅是特定的注释(至少我假设会发生这种情况)。

顺便说一句,更合乎逻辑的 URL 结构是:

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

虽然这不会帮助您解决这个特殊问题,但只是附带说明。

于 2013-02-21T12:02:54.550 回答