URL重写 - 删除整个页面名称

时间:2014-07-09 19:24:41

标签: asp.net url-rewriting

目前我的web.config中有一个重写规则,它删除了" .aspx"页面扩展名。

我想重写我的网址以删除整个网页名称" page1.aspx"所以我的网址将显示为" www.mysite.com/folder /"而不是" www.mysite.com/folder/page1"

我目前使用的web.config中的重写代码如下:

<rewrite>
  <rules>
    <clear />
    <rule name="Redirect to clean URL" enabled="true" stopProcessing="true">
      <match url="^([._0-9a-z-/]+).aspx$" ignoreCase="true" />
      <conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
      <action type="Redirect" url="{R:1}" />
    </rule>
    <rule name="RewriteASPX" enabled="true">
      <match url="(.*)" />
      <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
      </conditions>
      <action type="Rewrite" url="{R:1}.aspx" />
    </rule>
  </rules>
</rewrite>

我需要添加或编辑我当前的规则才能获得所需的结果?

谢谢!

1 个答案:

答案 0 :(得分:0)

在regex101.com上快速测试,这有用吗?

<match url="^([._0-9a-z-/]+)/(.+).aspx$" ignoreCase="true" />

<action type="Redirect" url="{R:0}/" />

添加&#34; /(。+)&#34;确保aspx中的最后一个单词从第一个匹配(R:0)中删除。 R:1将包含该单词:&#34; page1&#34;而R:0将包含:&#34; www.mysite.com/folder"。