在asp.net中使用重写模块重定向到没有查询字符串的页面

本文关键字:查询 字符串 重定向 net asp 模块 重写 | 更新日期: 2023-09-27 17:50:28

我必须创建一个重写规则,它将重定向URL如下

abc.com/ssss/aaaaa/fff.aspx/? homeredirect =真正的

abc.com/ssss/aaaaa/fff.aspx

abc.com/fff.aspx/? homeredirect =真正的

abc.com/fff.aspx

我不知道我该怎么做。

我试过下面的一个,但它不适合我

 <rule name="Mb" enabled="true" stopProcessing="true">
      <match url ="^([_A-Z0-9a-z-]+)/?homeredirect=true" ignoreCase="false"/>
      <conditions logicalGrouping ="MatchAll" trackAllCaptures="false">
        <add input ="{HTTP_HOST}" pattern="^(www.)?abc.com$"/>
        <add input ="{REQUEST_URI}" pattern="ModuleId" negate="true"/>
      </conditions>
      <action type="Rewrite" url="/{R:1}"/>
    </rule>

请帮帮我。

在asp.net中使用重写模块重定向到没有查询字符串的页面

从URL Rewrite的角度来看," URL "属性中的问号在正则表达式上下文中表示" 0或1 "。

要在重写规则中使用查询字符串,将其作为条件。这类似于Apache中mod_rewrite对查询字符串的处理。

另外,转义任何可能对正则表达式有意义的字符也是一个好主意,例如句号。

IIS URL重写模块:

<!-- Remove homeredirect=true from query string for URLs ending in .aspx -->
<rule name="Mb" enabled="true" stopProcessing="true">
  <!-- Match any URL ending in ".aspx/" -->
  <match url="'.aspx/$" ignoreCase="false" />
  <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
    <add input="{HTTP_HOST}" pattern="^(www'.)?abc'.com$" />
    <!-- Match if the query string includes "homeredirect=true" -->
    <add input="{QUERY_STRING}" pattern="homeredirect=true" />
  </conditions>
  <!-- Redirect to the URL without the query string -->
  <action type="Redirect" url="/{R:0}" />
</rule>

查看URL重写模块配置参考获取更多详细信息