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