使用url重写时,ASP.NET页面加载两次

时间:2017-05-03 15:07:56

标签: c# asp.net url-rewriting

我有一个带有网址重写规则的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方法中设置了一个断点用于调试。然后,当我访问&#39; http://[domain]/Discover/1/时,我发现了。发现页面将加载两次。但是,如果我输入&#39; http://[domain]/News/Discover.aspx?Section=1&#34;,那么断点只会被击中一次。

有谁知道如何保留网址重写规则,同时只加载一次页面?

1 个答案:

答案 0 :(得分:0)

<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>