国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網(wǎng)站 > IIS > 正文

詳解IIS中URL重寫工具的規(guī)則條件(Rule conditions)

2024-08-29 03:16:34
字體:
供稿:網(wǎng)友

本文結(jié)合官方文檔和相關(guān)示例,詳細(xì)記錄了在IIS中URL重寫工具下的規(guī)則條件(Rule conditions)的相關(guān)說明。規(guī)則條件允許我們通過額外的邏輯規(guī)則來過濾和匹配規(guī)則模式( rule pattern ),所以只有當(dāng)規(guī)則模式的URL匹配成功時,Rule conditions才會起作用。

先附上官方文檔地址:Rule conditions。下面會詳細(xì)說明規(guī)則中的各種屬性和設(shè)置。

邏輯分組

邏輯分組只有兩個選項(xiàng),任意匹配和全部匹配。規(guī)則條件是由多個條件組成的一個條件集合,所以最終判斷需要根據(jù)邏輯分組來的設(shè)置來選擇計算方法。

就如同字面上的意思,如果選擇任意匹配,只要在條件集合中有一個條件規(guī)則符合匹配,那么整體的規(guī)則條件就是有效的,相當(dāng)于編程中的或運(yùn)算。而如果選擇全部匹配,只有當(dāng)條件集合中的所有規(guī)則全部匹配成功,規(guī)則條件才算是有效的規(guī)則,相當(dāng)于編程中的與運(yùn)算。

匹配類型

按照文檔所說,定義一個規(guī)則條件主要通過設(shè)置兩個屬性,即輸入字符串(Input string)和匹配類型(Match type),匹配類型在添加條件的對話框中是通過檢查輸字符串是否選項(xiàng)來設(shè)置的,總共有3種匹配類型,細(xì)分的話則是6種匹配類型:

Rule,conditions

1、是否是文件,分為是文件和不是文件這兩個選項(xiàng),可以用來判斷所請求的URL是否為系統(tǒng)文件的物理路徑,默認(rèn)的條件輸入字符串的值(服務(wù)器變量)是{REQUEST_FILENAME}

2、是否是目錄,分為是目錄和不是目錄這兩個選項(xiàng),可以用來判斷所請求的URL是否為文件目錄的物理路徑,默認(rèn)服務(wù)器變量為{REQUEST_FILENAME}

3、是否與模式匹配,分為與模式匹配和與模式不匹配兩個選項(xiàng),一旦選擇了這種匹配模式,那么就需要搭配正則表達(dá)式或者通配符進(jìn)行匹配。在添加條件的對話框中,通過設(shè)置模式輸入框來設(shè)置相應(yīng)的正則表達(dá)式或通配符以完成模式匹配。

Rule,conditions

條件輸入字符串與服務(wù)器變量

條件輸入字符串中的值就是服務(wù)器變量,而具體使用哪些服務(wù)器變量則與匹配類型有關(guān),關(guān)于服務(wù)器變量可以查閱這篇資料:IIS Server Variables

這里我們挑選最常使用的匹配類型:與模式匹配。這種模式最常使用的服務(wù)器變量類型如下:QUERY_STRING、HTTP_HOST、SERVER_PORT、SERVER_PORT_SECURE、REQUEST_URI。

Rule,conditions

假設(shè)向下面的URL地址發(fā)送一個請求:http://shiyousan.com/Home/Index?page=1&tid=11,那么這些變量的含義如下:

QUERY_STRING 服務(wù)器變量所包含的是 page=1&tid=11這部分,表示URL的參數(shù)字符串HTTP_HOST 服務(wù)器變量所包含的部分是shiyousan.com,表示所請求的主機(jī)域名SERVER_PORT 服務(wù)器變量所包含的部分是 80,表示服務(wù)器的端口SERVER_PORT_SECURE 服務(wù)器變量所包含的部分是0,HTTPS請求為OFF,表示接受請求的服務(wù)器端口是否為安全端口時,是為1,否則為0,一般來說如果是HTTPS請求則為安全端口,即為1,HTTPS為ON。REQUEST_URI 服務(wù)器變量所包含的部分是/Home/Index?page=1&tid=11,就是除了主機(jī)域名外剩下的URL地址字符串和參數(shù)字符串。范例

根據(jù)上面條件輸入的服務(wù)器變量類型描述,就能大概知道這些服務(wù)器變量如何和我們的匹配模式相結(jié)合使用,這里我們以正則搭配HTTP_HOST來做一個范例。

假設(shè)當(dāng)前網(wǎng)站綁定了多個域名,比如shiyousan.com,www.shiyousan.com,daodaodao.shiyousan.com,ywftest.com(意思就是訪問這些域名都是打開同一個網(wǎng)站)。我們要做一個301重定向,將shiyousan.com這個頂級域名下的所有子域名都重定向到頂級域名中(這里只是舉例,一般很少這樣做),其他頂級域名保持不變。

如下圖所示,我們添加了一個條件模式,條件輸入的服務(wù)器變量為{HTTP_HOST},匹配模式的正則為^(.+)/.shiyousan/.com$。

Rule,conditions

只要在網(wǎng)站中輸入www.shiyousan.com這樣主機(jī)為shiyousan且?guī)в卸嗉売蛎熬Y,都會被強(qiáng)制跳轉(zhuǎn)到頂級域名中。

相反的由于在條件模式中沒有限制ywftest.com這個域名,所以使用這個域名訪問網(wǎng)站就會發(fā)現(xiàn)URL地址仍然沒有變化。因?yàn)閥wftest.com的主機(jī)無法和我們設(shè)置的條件正則匹配,所以就不會觸發(fā)對應(yīng)的入站規(guī)則。如果想將ywftest.com這個域名也實(shí)現(xiàn)上述的重定向功能,我們也只要在添加一條規(guī)則添加即可,并設(shè)置邏輯分組為任意匹配。

其他的服務(wù)器變量也是這樣的道理,比如添加一個QUERY_STRING的條件模式,那么只有請求的URL地址和所設(shè)置的URL參數(shù)正則匹配,才能觸發(fā)重寫工具所定義的規(guī)則。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 那坡县| 巴青县| 剑阁县| 禄丰县| 九寨沟县| 汝阳县| 襄樊市| 中江县| 武冈市| 聂荣县| 卢龙县| 永泰县| 壤塘县| 广东省| 凌源市| 城口县| 于田县| 兖州市| 出国| 吉水县| 周至县| 措美县| 芮城县| 红安县| 偏关县| 托里县| 永吉县| 马龙县| 五原县| 武山县| 吴堡县| 遂川县| 田林县| 阿坝县| 泊头市| 开封县| 柘荣县| 曲麻莱县| 江门市| 江口县| 阿瓦提县|