我的网络配置中有两个与某个网址冲突的规则。
此第一条规则必须重定向到网站:
<rule name="Pop Up Cadastro">
<match url="^cadastro" />
<conditions logicalGrouping="MatchAll">
<add input="{SCRIPT_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
<add input="{SCRIPT_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
</conditions>
<action type="Rewrite" url="site/site.php?url={R:0}" appendQueryString="true" />
</rule>
如果未找到匹配项,则第二条规则将重定向到hotsite:
<rule name="HotSite">
<match url="^(.*)$" />
<conditions logicalGrouping="MatchAll">
<add input="{SCRIPT_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
<add input="{SCRIPT_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
</conditions>
<action type="Rewrite" url="HotSite/Default.aspx?url={R:0}" appendQueryString="true" />
</rule>
我的网址结构如下:
//WebSite URL | First Rule
www.example.com/cadastro
//HotSite URL | Second Rule
www.example.com/cadastro-teste-e-com
这适用于洞网站,但是当我有这个网址(cadastro-teste-e-com)时,我会被重定向到网站而不是网站。
规则的顺序与我在此处发布的相同。
所以,我的问题是,有没有办法将第一条规则限制为只有 cadastro 这个词?
提前致谢。
答案 0 :(得分:1)
在第一个规则中你有正则表达式匹配以cadastro开头的所有内容,如果你只想匹配cadastro,你需要在正则表达式结束时添加$。
<rule name="Pop Up Cadastro">
<match url="^cadastro$" />
<conditions logicalGrouping="MatchAll">
<add input="{SCRIPT_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
<add input="{SCRIPT_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
</conditions>
<action type="Rewrite" url="site/site.php?url={R:0}" appendQueryString="true" />
</rule>