web.config里伪静态不包含(排除)指定关键词写法
使用windows系列服务器,IIS设置伪静态,在web.config配置文件里可以很轻松地利用正则表达式写伪静态规则。
一个站点的伪静态规则不可能只有一条,如果规则多的话,很可能会发生规则和规则之间发生冲突,从而网站出现异常,达不到预期效果。
本文就教大家如何在web.config里书写正则表达式,排除某个目录或特定关键词的写法。
先看下面两条重写规则:
<rule name="demo1" stopProcessing="true">
<match url="^([A-Za-z]*).html$" />
<action type="Rewrite" url="demo1.asp?name={R:1}" appendQueryString="false" />
</rule>
<rule name="demo2" stopProcessing="true">
<match url="^demo.html$" />
<action type="Rewrite" url="demo2.asp" appendQueryString="false" />
</rule>
如果name等于demo的话,这亮条规则就相互冲突了,如果我们在规则demo1里将demo这个指定关键词排除在外的话,不包含demo字眼,就可以很好地解决这个问题。那这个规则该如何如些,请看下面的demo1的规则代码:
<rule name="demo1" stopProcessing="true">
<match url="^((?!demo).([A-Za-z]*)).html$" />
<action type="Rewrite" url="demo1.asp?name={R:1}" appendQueryString="false" />
</rule>
利用这样的写法,就可以让伪静态正则规则将demo排除在外了。