Asp.net 带URL重写模块的IIS 7.5在回发时加倍查询字符串参数

Asp.net 带URL重写模块的IIS 7.5在回发时加倍查询字符串参数,asp.net,url-rewriting,iis-7.5,Asp.net,Url Rewriting,Iis 7.5,我正在Windows7RC上使用IIS7.5。我使用IIS Url重写模块重写Url 一切似乎都很好,直到我点击一个按钮执行回发。然后将querystring参数附加到我重写的URL,如下所示: 在浏览器中显示的重写URL: 如果不重写URL,则URL为: 当我单击按钮执行回发时,URL将更改为: 当URL被重写时,所有querystring参数都会加倍-因此,当我想通过这样做获得当前语言时: Request.QueryString["lang"] 我得到的值是“恩,恩” 还有其他人有这

我正在Windows7RC上使用IIS7.5。我使用IIS Url重写模块重写Url

一切似乎都很好,直到我点击一个按钮执行回发。然后将querystring参数附加到我重写的URL,如下所示:

在浏览器中显示的重写URL:

如果不重写URL,则URL为:

当我单击按钮执行回发时,URL将更改为:

当URL被重写时,所有querystring参数都会加倍-因此,当我想通过这样做获得当前语言时:

Request.QueryString["lang"]
我得到的值是“恩,恩”

还有其他人有这些问题吗

更新:从Web.Config重写规则

<rule name="RedirectProductPageUrls" stopProcessing="true">
    <match url="^product\.aspx$" />
    <conditions logicalGrouping="MatchAll">
        <add input="{REQUEST_METHOD}" negate="true" pattern="^POST$" />
        <add input="{QUERY_STRING}" pattern="^lang=([^=&amp;]+)&amp;id=([^=&amp;]+)&amp;title=([^=&amp;]+)$" />
    </conditions>
    <action type="Redirect" url="{C:1}/products/{C:2}/{C:3}" appendQueryString="false" redirectType="Permanent" />
</rule>
<rule name="RewriteProductPageUrls" stopProcessing="true">
    <match url="^([^/]+)/product/([^/]+)/([^/]+)/?$" />
    <conditions logicalGrouping="MatchAll">
        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
    </conditions>
    <action type="Rewrite" url="product.aspx?lang={R:1}&amp;id={R:2}&amp;title={R:3}" />
</rule>

将appendQueryString=“false”属性也添加到重写规则的action元素中


希望这有帮助。

这是IIS重写模块的一项安全功能

我个人更喜欢ISAPI重写,因为它更好,编写规则更简单,并且有更多的功能


我们还发现,在中高负载(超过100个网站连接)下,IIS重写模块会导致应用程序池崩溃、生成新进程。

我通过添加

Form.Action = Request.RawUrl;

转到页面加载事件。我可以离开appendQueryString=“TRUE”,到目前为止它工作正常

你能发布你的重写规则吗?只要发布web.config中的任何内容:…更新了重写规则和产品页面的重定向规则。嘿,Ryan,我摆弄appendQueryString一个小时都没有运气。但是你的建议奏效了!谢谢,这个问题实际上是通过修改表单操作解决的。您可以创建自定义控件适配器,以便更改应用于站点中的所有表单。Scott Gu在这篇文章的底部有一个指南:Bruce,我刚刚删除了UrlRewritting Dll,因为它迫使我在经典模式下使用app_pool。我认为iis7的内置功能会更好、更优化。你是不是在暗示别的?请让我知道。。我很担心。