網(wǎng)站首頁 編程語言 正文
在nginx的配置中,是否對rewrite的配置模糊不清,還有令人迷惑的
$1、$2...
參數(shù),(其實$1、$2
參數(shù)在shell腳本中經(jīng)常用到,用來承接傳遞的參數(shù))。本篇從反向代理配置的角度幫助理解一下
1、先看一個nginx配置
rewrite ^/(user_\d)/(\d).html$ https://$host/?$1 permanent;
上面是我寫的重寫規(guī)則,先說$代表的是參數(shù),所以一定是?()
?包含的
()
?: 用于匹配括號之間的內(nèi)容,通過$1
、$2
調(diào)用$1
?就是?user_\d
$2
?就是?\d
舉個例子
https://www.example.com/user_1/2.html
這里$1
?就是 user_1
$2
就是2
這實際上就是正則在nginx里面的運用, 下面看一下?正則?的規(guī)則,會幫助你理解??
2、正則
2.1、replace
stringObject.replace(regexp/substr, replacement)
replacement?可以是字符串,也可以是函數(shù)。如果它是字符串,那么每個匹配都將由字符串替換。但是?replacement
?中的?$
?字符具有特定的含義。如下表所示,它說明從模式匹配得到的字符串將用于替換。
字符 | 替換文本 |
---|---|
1、1、2、...、$99 | 與 regexp 中的第 1 到第 99 個子表達(dá)式相匹配的文本。 |
$& | 與 regexp 相匹配的子串。 |
$` | 位于匹配子串左側(cè)的文本。 |
$' | 位于匹配子串右側(cè)的文本。 |
$$ | 直接量符號。 |
2.2、正則匹配重寫例子
- 參數(shù)匹配,互換位置
name = "Tom, Jerry"; name.replace(/(\w+)\s*, \s*(\w+)/, "$2 $1"); 'Jerry Tom'
- 參數(shù)獲取
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、生產(chǎn)配置示例
下面是工作中的實際配置, 重寫系統(tǒng)簡稱 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 相關(guān)的還有 break、last、permanent、redirect參數(shù),下期繼續(xù)分享。
原文鏈接:https://www.cnblogs.com/all-smile/p/16913087.html
相關(guān)推薦
- 2022-05-06 golang excel數(shù)據(jù)寫入到sqlite3中
- 2022-02-17 springBoot自定義場景啟動器starter
- 2022-07-16 Spring MVC @ModelAttribute注解
- 2022-06-02 C語言基于EasyX庫實現(xiàn)有圖形界面鐘表_C 語言
- 2022-09-30 Python測試框架pytest核心庫pluggy詳解_python
- 2021-12-08 linux中g(shù)rub啟動引導(dǎo)程序的加密介紹_Linux
- 2023-01-11 jQuery綁定點擊事件與改變事件的方式總結(jié)及多個元素綁定多個事件_jquery
- 2022-12-01 Golang?編寫Tcp服務(wù)器的解決方案_Golang
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支