【问题标题】:IIS URL Rewrite Module : Rewrite Appends QueryStringIIS URL 重写模块:重写追加查询字符串
【发布时间】:2011-01-24 11:47:11
【问题描述】:

我有以下重写规则。

 <rule name="cheapbastardz.signupcode" stopProcessing="true">
     <match url="^signup/code/([_0-9a-z-%=\+\$]*)$" />
     <conditions>
     </conditions>
     <action type="Rewrite" url="Page.aspx?sc={R:1}" appendQueryString="false" />
 </rule>

现在,当用户点击返回页面的按钮时,网址会发生变化

http://localhost/CBAanmelding/signup/code/3f69fa28-5c6c-4815-a2b3-3c846651bed9

http://localhost/CBAanmelding/signup/code/3f69fa28-5c6c-4815-a2b3-3c846651bed9?sc=3f69fa28-5c6c-4815-a2b3-3c846651bed9

我不希望查询字符串出现。我该如何防止这种情况。提前致谢。

Gr

马丁

【问题讨论】:

  • 最好在 serverfault.com 上询问,或尝试 iis.net 上的论坛

标签: asp.net iis url-rewriting


【解决方案1】:

使用

form1.Action = Request.RawUrl;

【讨论】:

    【解决方案2】:

    您确定您的规则正在触发吗?

    匹配模式似乎不适合传入的 URL。传入的 URL 以 /CBAanmelding 开头,而您的模式查找以注册开头的 URL。 signup 之前的抑扬符是一个零宽度断言,该模式仅在 URL 的开头匹配。

    也许您需要更改模式?

     <rule name="cheapbastardz.signupcode" stopProcessing="true">
         <match url="^CBAanmelding/signup/code/([_0-9a-z-%=\+\$]*)$" />
         <conditions>
         </conditions>
         <action type="Rewrite" url="Page.aspx?sc={R:1}" appendQueryString="false" />
     </rule>
    

    【讨论】:

    • 我确定它正在启动。那只是虚拟应用程序目录。它不看那部分。我认为问题不在于规则,而只是回发附加了 sc 键。
    • 我在您重写的 URL 中没有看到 Page.aspx。这让我想知道它是否正在开火。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多