Dai*_*Dai 10
优先级与它们指定的顺序相同.IIS管理器有一个"上移"和"下移"按钮,可以为您重新排序.
例如:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="Rule1" stopProcessing="true">
<match url="^foo/?bar=123"/>
<action type="Rewrite" url="foo.aspx?bar=special" appendQueryString="false" />
</rule>
<rule name="Rule2" stopProcessing="true">
<match url="^foo/?bar=([A-z0-9]+)"/>
<action type="Rewrite" url="foo.aspx?bar={R:1}" appendQueryString="false" />
</rule>
<rule name="Rule3" stopProcessing="true">
<match url="^foo/"/>
<action type="Rewrite" url="somethingElse.aspx" appendQueryString="false" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
Run Code Online (Sandbox Code Playgroud)
考虑传入的请求/foo?bar=123.
在这个例子中,因为Rule1是第一次,则意味着该请求将被重写为foo.aspx?bar=special代替的foo.aspx?bar=123,即使它同时匹配Rule1,Rule2和Rule3.
该stopProcessing="true"属性确保不执行其他匹配规则(即Rule2和Rule3).
资料来源:http://www.iis.net/learn/extensions/url-rewrite-module/url-rewrite-module-configuration-reference#Rules_Evaluation
IIS中的每个配置级别都可以定义零个或多个重写规则.规则的评估顺序与指定的顺序相同.URL重写模块使用以下算法处理规则集:
- 首先,URL与规则模式匹配.如果不匹配,则URL重写模块会立即停止处理该规则,并继续执行下一个规则.
- 如果模式匹配且规则没有条件,则URL重写模块将执行为此规则指定的操作,然后继续执行下一个规则,在该规则中,它使用替换的URL作为该规则的输入.
- 如果模式匹配且规则存在条件,则URL重写模块将评估条件.如果评估成功,则执行指定的规则操作,然后将重写的URL用作后续规则的输入
| 归档时间: |
|
| 查看次数: |
8672 次 |
| 最近记录: |