在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>
请帮帮我。
从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重写模块配置参考获取更多详细信息