【问题标题】:ASP.NET page load twice when using url rewriting使用 url 重写时 ASP.NET 页面加载两次
【发布时间】:2017-10-01 12:13:58
【问题描述】:

我有一个带有 url 重写规则的 asp.net 页面。规则如下:

 <rule name="DiscoverCategorySEO">
      <match url="^Discover/([0-9]+)/"/>
      <conditions>
        <add input="{URL}" negate="true" pattern="\.axd$"/>
      </conditions>
      <action type="Rewrite" url="News/Discover.aspx?Section={R:1}" redirectType="Permanent" appendQueryString="false"/>
</rule>

我在 Page_Load 方法中设置了一个断点进行调试。然后我在访问'http://[domain]/Discover/1/'时发现。发现页面将加载两次。但是,如果我输入'http://[domain]/News/Discover.aspx?Section=1",则断点只会被击中一次。

有谁知道我怎样才能保持 url 重写规则同时只加载一次页面?

【问题讨论】:

  • 看来你需要说 stopprocessing=true
  • 嗨大胡子骆驼,我在哪里添加这个?
  • 这是某处的属性...尝试操作元素...智能感知将指导您;)

标签: c# asp.net url-rewriting


【解决方案1】:
<rule name="DiscoverCategorySEO"  enabled="true" stopProcessing="true">
    <match url="^Discover/([0-9]+)/"/>
          <conditions logicalGrouping="MatchAll">
            <add input="{URL}" negate="true" pattern="\.axd$"/>
            <add input="{PATH_INFO}"  pattern="^Discover/([0-9]+)/"  />
          </conditions>
          <action type="Rewrite" url="News/Discover.aspx?Section={R:1}" redirectType="Permanent" appendQueryString="false"/>
</rule>

【讨论】:

  • 您好约瑟夫,感谢您的回复。我试过你给的代码。但它仍然两次达到断点。
  • 你重置了 iis 吗?
  • 嗨,我已经调整了答案,你可以吗?
  • 嗨 Joseph,我更改了这些代码并遇到了 404 错误。
猜你喜欢
  • 2011-12-02
  • 1970-01-01
  • 2014-12-20
  • 1970-01-01
  • 2013-07-31
  • 2014-02-24
  • 1970-01-01
  • 2013-08-17
  • 2018-05-09
相关资源
最近更新 更多