具有多个查询字符串的URLRewriter.net由/分隔

时间:2010-04-29 22:01:21

标签: url-rewriting asp.net-3.5 urlrewriter.net

我一直在寻找网站,但我没有找到任何关于如何按照我想要的方式做出回复。

我想要的是这样的网址:

www.example.com/Projects/“querystring1 - text only”/“querystring2 - 仅限4位”/

显示包含此网址的网页:

www.example.com/Projects.aspx?Region=querystring1&Zip=querystring2

我一直在尝试以下内容:

<rewrite url="~/Leje-og-udlejning-arbejdskraft/(.+)/(.+)" to="~/Workers.aspx?Region=$1&amp;zip=$2"/>

但它只是将它们作为一个查询并将它们放在Region-querystring中。

1 个答案:

答案 0 :(得分:4)

我需要确定其余的重写规则,但是如果你有多次重写(即处理用户只指定两个查询字符串之一的情况),而忽略添加processing="stop" at结束将导致一个规则覆盖另一个规则。

例如,我在web.config文件中使用以下设置:

<rewriter>
    <rewrite url="~/(.+)/(.+)" to="~/Default.aspx?ref=$1&amp;page=$2" processing="stop"/>
    <rewrite url="~/(.+)" to="~/Default.aspx?ref=$1" processing="stop"/>
</rewriter>

这将首先检查是否存在2个查询变量。如果是,则会相应地重写它们,并且会停止处理其他规则。这是个大问题。最后没有processing="stop",我最终将两者都作为ref查询字符串传递。这可能是您正在进行的冲突。