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

首頁 > 網站 > IIS > 正文

詳解IIS中的重寫工具下關于操作重定向URL中的{R:N}與{C:N}使用介紹

2024-08-29 03:16:34
字體:
來源:轉載
供稿:網友

URL Rewrite(URL重寫工具)作為IIS下較為常用的模塊組件, 提供了重寫、重定向、自定義響應、中止請求等功能。但是其相關的中文資料比較缺少,官方倒是有完整和詳細的英文文檔,之前我在項目中遇到需要設置重寫/重定向URL操作規則時,對于范例中的{R:N}和{C:N}規則就理解的十分辛苦,因此寫下本文分享下經驗

這里先附上官網的文檔,其實文檔鏈接在IIS的URL重寫模塊的右邊菜單就有:URL Rewrite Module Configuration Reference(URL重寫模塊配置參考)  ,也可以看這篇URL 重寫模塊頁

R和C表示的是什么意思?

這里先看官方文檔的說明:

Back-references to condition patterns are identified by {C:N} where N is from 0 to 9. Back-references to rule patterns are identified by {R:N} where N is from 0 to 9. Note that for both types of back-references, {R:0} and {C:0}, will contain the matched string.

文檔鏈接地址:Using back-references in rewrite rules

{R:N}和{C:N}主要是使用了正則表達式的back-references(中文名詞:反向引用/逆向引用/后向引用/向后引用),關于正則的反向引用這里就不多加說明,可以參考這三篇文章:

反向引用后向引用Using Back References

我們只要知道R表示的是rule patterns(規則模式,就是匹配URL的模式),C表示的是condition patterns(條件模式,規則條件的屬性)。{R:N}和{C:N}中的N是指正則表達式中反向引用所捕獲到的組號,有0至9的組號。需要注意的是,{R:0}和{C:0}表示全部匹配。其它的比如{R:1}或者{C:1}的組號是1,所以會匹配到分組1所捕獲到的內容,其他帶組號的則對應其正則所匹配到的組號內容。

關于規則模式和規則條件,可以參考這兩篇文章

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

詳解IIS中URL重寫工具的匹配URL-規則模式(rule patterns)

示例詳解說明{R:N}和{C:N}

假設我們要將地址http://192.168.1.100:8080/Home/TestUrlRewrite做301重定向到http://192.168.1.100:8080/TestUrlRewrite/Index,那么我們IIS中的設置如下:

1、匹配URL(rule patterns):

重定向URL,{R:N},{C:N},IIS

上圖中我們設置模式的正則表達式為^(.*?)/?Home(/TesturlRewrite)$,我們點擊打開測試模式,輸入要測試匹配的URL地址:http://192.168.1.100:8080/Home/TestUrlRewrite,如下圖所示:

重定向URL,{R:N},{C:N},IIS

由上圖可知,我們成功匹配了測試的URL,根據匹配模式的正則,我們一共可以捕獲到3組內容,其中{R:0}上面有說過表示的是全部的內容,{R:1}捕獲到的是http://192.168.1.100:8080,{R:2}捕獲到的反向引用是/TestUrlRewrite

2、規則條件(Rule conditions):

重定向URL,{R:N},{C:N},IIS

這里我們添加了一個條件過濾,只匹配192.168.1.100:8080這個HTTP_HOST主機。在測試的時候只捕獲到一個反向引用組,即{C:0}:

重定向URL,{R:N},{C:N},IIS

3、操作規則(Rule Action):

最后設置操作規則,設置重定向URL為:{R:2}/Index,上面我們已經知道{R:2}就是反向引用所捕獲的/TestUrlRewrite,完整重定向的URL地址為:/TestUrlRewrite/Index。這樣就成功實現了使用反向引用來進行重定向操作。

重定向URL,{R:N},{C:N},IIS


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 精河县| 江达县| 会昌县| 广平县| 黑河市| 法库县| 古浪县| 江川县| 抚顺县| 黄浦区| 平乡县| 乐平市| 奉化市| 靖边县| 太湖县| 望江县| 读书| 锦州市| 杭锦后旗| 襄垣县| 遵义市| 盐源县| 霞浦县| 皋兰县| 上虞市| 尖扎县| 临西县| 吴桥县| 漳州市| 和林格尔县| 日照市| 衡南县| 廉江市| 定边县| 万安县| 古蔺县| 礼泉县| 托里县| 泾源县| 彭山县| 新密市|