现在的位置: 网页制作教程网站制作经验 >正文
服务器问题和教程

web.config里伪静态不包含(排除)指定关键词写法

发表于2018/8/4 网站制作经验 0条评论 ⁄ 热度 3,880℃

使用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排除在外了。

  • 暂无评论