日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無先后,達(dá)者為師

網(wǎng)站首頁 編程語言 正文

nginx?rewrite參數(shù)解析_nginx

更新時間: 2022-12-19 編程語言

在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

欄目分類
最近更新