IIS7中Web.config的rewrite實例分析講解,教你看懂重寫規(guī)則
本文詳細介紹解釋了IIS7 Web.config rewrite規(guī)則設(shè)置url重寫功能,通過講解實例的語法結(jié)構(gòu)和標簽用法,搭配一些簡單的正則表達式,你可以寫出符合自己要求的重寫規(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.dhdzp.com/,注意域名后面有個斜杠/。
(.*)匹配任何字符。
([0-9,a-z]*)匹配任何數(shù)字和字母。
因此,^(.*)t/([0-9,a-z]*) 可以匹配如下的訪問網(wǎng)址(假如網(wǎng)站域名是www.dhdzp.com):
http://www.dhdzp.com/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.dhdzp.com/t/123
http://www.dhdzp.com/news/t/a1
那么,其對應(yīng)的實際網(wǎng)址是
http://www.dhdzp.com/list.asp?id=123
http://www.dhdzp.com/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)文章
IIS7傳大于30M的視頻時出現(xiàn)找不到文件或目錄錯誤正確處理方法
IIS7傳大于30M的視頻時出現(xiàn)找不到文件或目錄錯誤的情況想必有很多的朋友都有遇到過吧,下面與大家分享下具體的解決方法2013-06-06
解決預(yù)裝win8系統(tǒng)重裝win7后無法進入系統(tǒng)
本文主要介紹了解決預(yù)裝win8系統(tǒng)重裝win7后無法進入系統(tǒng)的方法。具有很好的參考價值。下面跟著小編一起來看下吧2017-04-04
WIN2008服務(wù)器命令行安裝和卸載IIS7組件的方法
這篇文章主要介紹了WIN2008服務(wù)器命令行安裝和卸載IIS7組件的方法,需要的朋友可以參考下2019-09-09
配置win2008防火墻 允許被Ping的設(shè)置方法
出于安全因素考慮,在 Windows Server 2008 上是不允許從外部對其執(zhí)行 Ping 指令的2010-05-05
IIS APPPOOL\DefaultAppPool 登錄失敗的解決方法
為大家介紹下解決IIS APPPOOL\DefaultAppPool 登錄失敗的方法,有遇到類似問題的朋友參考下2013-10-10
解決IIS7、IIS7.5 應(yīng)用程序池回收假死的方法
這篇文章主要介紹了解決IIS7、IIS7.5 應(yīng)用程序池回收假死的方法,需要的朋友可以參考下2015-10-10
iis7.5中讓html與shtml一樣支持include功能(添加模塊映射)
因為客戶經(jīng)常需要修改文件,用不能每次都用js容易被屏蔽,文章已經(jīng)生成了html或htm格式,不可能冒然再改為shtml擴展,下面就給大家分享一下如何讓html也像shtml一樣,需要的朋友可以參考下2020-03-03
Windows server 2016搭建DNS服務(wù)的方法步驟(圖文)
DNS服務(wù)器是一種網(wǎng)絡(luò)服務(wù),它將域名轉(zhuǎn)換為IP地址,以便計算機可以訪問互聯(lián)網(wǎng)和其他網(wǎng)絡(luò)資源,本文主要介紹了Windows server 2016搭建DNS服務(wù)的方法步驟,具有一定的參考價值,感興趣的可以2023-09-09
使IIS支持PHP,ISAPI或CGI,FastCGI完全配置教程(最新php5.2.13配置方法)
使IIS支持PHP,ISAPI或CGI,F(xiàn)astCGI完全配置教程(最新php5.2.13配置方法),我是比較完整的一個版本,對可能出現(xiàn)的問題給出了具體的解決方法。2010-12-12

