網站首頁 編程語言 正文
在nginx的配置中,是否對rewrite的配置模糊不清,還有令人迷惑的
$1、$2...
參數,(其實$1、$2
參數在shell腳本中經常用到,用來承接傳遞的參數)。本篇從反向代理配置的角度幫助理解一下
1、先看一個nginx配置
rewrite ^/(user_\d)/(\d).html$ https://$host/?$1 permanent;
上面是我寫的重寫規則,先說$代表的是參數,所以一定是?()
?包含的
()
?: 用于匹配括號之間的內容,通過$1
、$2
調用$1
?就是?user_\d
$2
?就是?\d
舉個例子
https://www.example.com/user_1/2.html
這里$1
?就是 user_1
$2
就是2
這實際上就是正則在nginx里面的運用, 下面看一下?正則?的規則,會幫助你理解?
2、正則
2.1、replace
stringObject.replace(regexp/substr, replacement)
replacement?可以是字符串,也可以是函數。如果它是字符串,那么每個匹配都將由字符串替換。但是?replacement
?中的?$
?字符具有特定的含義。如下表所示,它說明從模式匹配得到的字符串將用于替換。
字符 | 替換文本 |
---|---|
1、1、2、...、$99 | 與 regexp 中的第 1 到第 99 個子表達式相匹配的文本。 |
$& | 與 regexp 相匹配的子串。 |
$` | 位于匹配子串左側的文本。 |
$' | 位于匹配子串右側的文本。 |
$$ | 直接量符號。 |
2.2、正則匹配重寫例子
- 參數匹配,互換位置
name = "Tom, Jerry"; name.replace(/(\w+)\s*, \s*(\w+)/, "$2 $1"); 'Jerry Tom'
- 參數獲取
var str = '/pgk/api/pgk-abc' var reg = /^\/pgk(.*)$/ str.replace(reg, "$1") // '/api/pgk-abc' var str = '/pgk/api/pgk-abc/n/abc' var reg = /^\/pgk\/api\/pgk-abc\/(.*)$/ str.replace(reg, "$1") // 'n/abc'
3、生產配置示例
下面是工作中的實際配置, 重寫系統簡稱 ABC
location /ABC/api/pgk-abc/ { rewrite ^/ABC/(.*)$ /$1 break; proxy_pass http://ip:port; # 這里重寫掉 ABC , $1 就是 api/pgk-abc/ # 實際請求地址是: http://ip:port/api/pgk-abc/ proxy_http_version 1.1; }
本篇完, rewrite 相關的還有 break、last、permanent、redirect參數,下期繼續分享。
原文鏈接:https://www.cnblogs.com/all-smile/p/16913087.html
相關推薦
- 2022-08-26 Python實現雙向RNN與堆疊的雙向RNN的示例代碼_python
- 2022-08-19 C#對桌面應用程序自定義鼠標光標_C#教程
- 2022-10-22 如何在Go中使用Casbin進行訪問控制_Golang
- 2022-06-16 Python語法學習之正則表達式的使用詳解_python
- 2022-07-02 基于np.arange與np.linspace細微區別(數據溢出問題)_python
- 2023-03-21 C++將字符串格式化的幾種方式總結_C 語言
- 2022-09-29 Python3中map(),reduce(),filter()的詳細用法_python
- 2023-10-25 el-tree設置選中高亮/焦點高亮、選中的節點加深背景,更改字體顏色等
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支