IIS7中Web.config的rewrite實例分析講解,教你看懂重寫規(guī)則
本文詳細介紹解釋了IIS7 Web.config rewrite規(guī)則設(shè)置url重寫功能,通過講解實例的語法結(jié)構(gòu)和標(biāo)簽用法,搭配一些簡單的正則表達式,你可以寫出符合自己要求的重寫規(guī)則。
首先請注意,本文適用IIS7及以上rewrite重寫功能。
同樣要注意的是,要實現(xiàn)在 Web.config 的rewrite重寫功能,你必須先安裝 URL_Rewrite 重寫模塊。
下面是本文要介紹的內(nèi)容,如何通過 Web.config 的rewrite規(guī)則,設(shè)置url重寫功能。
實例代碼
<?xml version="1.0" encoding="UTF-8"?> <configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0"> <system.webServer> <rewrite> <rules> <rule name="rule1"> <match url="^(.*)t/([0-9,a-z]*)" ignoreCase="false" /> <action type="Rewrite" url="{R:1}/list.asp?id={R:2}" appendQueryString="false" /> </rule> <rule name="rule2"> <match url="^(.*/)*([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)\.html\?*(.*)$" /> <action type="Rewrite" url="{R:1}/index.php?moduleid={R:2}&catid={R:3}&itemid={R:4}&page={R:5}" /> </rule> </rules> </rewrite> </system.webServer> </configuration>
解釋
1、<rule>
節(jié)點的name不能重復(fù)。
2、<match>
里的url是一個正則表達式,實例里^(.*)t/([0-9,a-z]*)
是一個常用的句式。
^
匹配域名開頭,如:http://www.dbjr.com.cn/
,注意域名后面有個斜杠/
。
(.*)
匹配任何字符。
([0-9,a-z]*)
匹配任何數(shù)字和字母。
因此,^(.*)t/([0-9,a-z]*)
可以匹配如下的訪問網(wǎng)址(假如網(wǎng)站域名是www.dbjr.com.cn):
http://www.dbjr.com.cn/t/123
3、<action type="Rewrite" ...>
表示執(zhí)行的類型是重寫,里面的url是實際網(wǎng)址,{R:1}/list.asp?id={R:2}
的解釋如下:
{R:1}
對應(yīng)<match>
里的url的第一個括號內(nèi)容,{R:2}
對應(yīng)<match>
里的url的第二個括號內(nèi)容,如果有{R:3}
、{R:4}
,如此類推。
所以,如果假如用戶訪問的網(wǎng)址是
http://www.dbjr.com.cn/t/123
http://www.dbjr.com.cn/news/t/a1
那么,其對應(yīng)的實際網(wǎng)址是
http://www.dbjr.com.cn/list.asp?id=123
http://www.dbjr.com.cn/news/list.asp?id=a1
4、按照上面的解釋,你應(yīng)該差不多能讀懂實例的rule2重寫規(guī)則了。
$
,這是個結(jié)束符,表示匹配的url到此結(jié)束,后面沒有其他字符了。
([0-9]+)
表示匹配任何數(shù)字。
\.html
表示匹配 .html
。
\?
表示匹配一個問號?
。
特別要注意,反斜杠\
是轉(zhuǎn)義符,因為正則表達式里,一點.
是表示匹配任何字符的意思,所以要加上反斜杠對其轉(zhuǎn)義,這樣才表示匹配的是一個點.
。
同樣地,問號?
也是一個元符號,它表示匹配前面的子表達式零次或一次,因此,也需要在其前面加上轉(zhuǎn)義符\
,這才表示匹配的是一個問號?
。
5、其他
ignoreCase="false"
表示不能忽略大小寫,如果該值設(shè)為true
,則表示忽略大小寫。
appendQueryString="false"
表示不使用url參數(shù)。
總結(jié)
本文詳細介紹解釋了IIS7 Web.config rewrite規(guī)則設(shè)置url重寫功能,參考實例的語法結(jié)構(gòu),你可以寫出符合自己要求的重寫規(guī)則,你需要了解一些簡單的正則表達式的語法。
到此這篇關(guān)于IIS7中Web.config的rewrite實例分析講解,教你看懂重寫規(guī)則的文章就介紹到這了,更多相關(guān)IIS7中url重寫的rewrite規(guī)則內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
WINDOWS server 2008 r2,win2012 r2 服
最近我們立方技術(shù)工作室在使用阿里云的過程中,發(fā)現(xiàn)服務(wù)器安全性也不是很高,而服務(wù)端的安全軟件都很貴。為了為朋友們提供更加有效的解決方案,我們決定身體力行,高筑墻,大幅度提升服務(wù)器的安全防護級別!2017-04-04Windows Server 2003 啟動中常見錯誤的解決方法
這篇文章主要介紹了Windows Server 2003 啟動中常見錯誤的解決方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-10-10windows IIS權(quán)限經(jīng)典設(shè)置教程
根據(jù)最新的黑客攻擊方法顯示,如果在IIS的站點屬性打開了“寫入”權(quán)限,則被黑是輕而易舉的事。2008-08-08windows server 2008 阻止惡意插件程序下載安裝到系統(tǒng)中
這篇文章主要介紹了windows server 2008 阻止惡意插件程序下載安裝到系統(tǒng)中,需要的朋友可以參考下2017-04-04Windows中IIS內(nèi)FTP服務(wù)器高級配置圖文教程
Windows中IIS內(nèi)FTP服務(wù)器高級配置圖文教程...2007-09-09win2003服務(wù)器定時自動重啟命令[計劃任務(wù)]
win2003服務(wù)器定時自動重啟命令,其實就是通過shutdown.exe結(jié)合計劃任務(wù)來實現(xiàn)的。2011-05-05win7下搭建nginx+php的開發(fā)環(huán)境
win7下搭建nginx+php的開發(fā)環(huán)境,需要的朋友可以參考下2016-04-04Wins2003系統(tǒng)中Apache性能優(yōu)化方法
為了滿足網(wǎng)站高負荷的要求,在調(diào)整Apache參數(shù)時發(fā)現(xiàn)進程經(jīng)常占用內(nèi)存過多導(dǎo)致當(dāng)機。經(jīng)過不斷的優(yōu)化和修改參數(shù)組合,終于讓服務(wù)器穩(wěn)定 下來,可以滿足大量訪問的考驗和應(yīng)用要求2012-12-12