麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學(xué)院 > 操作系統(tǒng) > 正文

nginx 配置$Query String

2024-06-28 16:01:26
字體:
供稿:網(wǎng)友

實際開發(fā)中經(jīng)常有根據(jù)請求參數(shù)來路由到不同請求處理者的情況,根據(jù)POST請求參數(shù)需要些nginx插件,這里主要簡單介紹下如何根據(jù)GET參數(shù)來路由。

1、location進行路徑

最常見的是通過location進行路徑匹配的時候,沒辦法是用正則表達一起捕獲這個路徑和querstring的。那么我想真的URL里面的Query String進行不同的rewrite,應(yīng)該如何處理呢?答案就是$arg變量。Nginx里面$query_string 與$args相同,存儲了所提交的所有$query_string;比如&p=2887&q=test如果想要在nginx里面單獨訪問這些變量。可以這樣比如$p變量可以這樣訪問 $arg_p

2、rewrite:

需求用到rewrite 其中有一個是要把a.php?id=2重定向到b-2.html開始簡單的寫為rewrite "^/a(.*)?(.*)$"  /b-$2.html  permanent;總是不能正確的301到b-2.html查資料發(fā)現(xiàn)

rewrite只能針對請求的uri進行重寫,/a.php問號后面的是請求參數(shù),在nginx用$query_string表示,直接寫這樣的一條重寫肯定不會正確匹配,因為rewrite參數(shù)只會匹配請求的uri,在寫重寫的時候需要把$query_string變量追加到重寫的uri后面,為了防止uri中的參數(shù)追加到重寫后的uri,可以在后面加個問號:

if ($query_string ~ "id=(.*)") {    set  $id  $1;    rewrite ^/a.php$ /b-$id.html? permanent;}

【示例1】

比如我們希望訪問http://192.168.71.51:6061/do1.aspx?t=1212&c=uplog當(dāng)url中的參數(shù)c為config或uplog的時候(忽略大小寫)我們路由到其他地方:

下面是用這樣一個實例講述一下。

首先增加一個upstream:

……upstream other {      server 192.168.71.41:2210;     }……

在location中加入判斷:

……location / {        if ( $query_string ~* ^(.*)c=config/b|uplog/b(.*)$ ){         PRoxy_pass                  http://other;        }……【示例2】要求是 如果請求中的$query_string包含"q=數(shù)字",301重新定向到首頁交由index.php處理。否則只是301重新定向到首頁。

location ~* ^/wap/ {#               if ( $http_user_agent ~* "(MSIE|bot|Spider|Slurp)" ) {#               }                if ($args ~* "p=/d+$") {                        rewrite ^ $scheme://$host/?p=$arg_p? permanent;                }                #Rewrite 后面帶一個?表示在重定向中使用query_tring                rewrite ^/(.*)$ $scheme://$host/<del datetime="2012-01-24T14:18:20+00:00">?</del> permanent; }注:關(guān)于rewrite后面的問號,其作用是去除后面的qrerystring,不加?的話,就是這樣的比如原來的query_string是p=2887,不加問號的話 是重新定向到http://ihipop.info/?2887&p=2887 多了一個&p=2887這樣產(chǎn)生的 URI 不是很美觀。

【示例3】

    location / {        if ( $query_string ~* "p=/d+$" ) {               proxy_pass                  http://www.ifeng.com;        }        proxy_pass                  http://www.baidu.com;    }通過如上配置,當(dāng)訪問nginx時,如果后面帶有p=數(shù)字的參數(shù)(http://10.153.140.42/?p=1),就會跳轉(zhuǎn)到ifeng,否則跳轉(zhuǎn)到baidu。


上一篇:aws 應(yīng)對 retire

下一篇:Gitlab安裝

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 激情小说激情图片激情电影 | 看一级大毛片 | 亚洲精品成人在线视频 | 日本a∨精品中文字幕在线 狠狠干精品视频 | 毛片a级毛片免费播放100 | 毛片国产| 欧美性生活区 | 国产精品免费久久久 | 国产分类视频 | 欧美日韩一 | 羞羞网站视频 | 免费观看一级 | 久久久久国产成人免费精品免费 | japanese hot milf free av | 538任你躁在线精品视频网站 | 91亚洲免费视频 | 久久91久久久久麻豆精品 | 成人啪啪18免费网站 | 欧美一极视频 | 色呦呦一区二区三区 | 久久草在线视频 | 在线观看网址av | 国产精品爱久久久久久久 | 一级网站 | 国产品久久 | 成人男男视频拍拍拍在线观看 | 极品美女一级毛片 | 亚洲精品永久视频 | 99欧美精品 | 国产午夜精品视频免费不卡69堂 | 成人午夜免费av | 九九福利视频 | 免费观看视频在线观看 | 激情视频免费看 | 久久艹逼 | 天天鲁在线视频免费观看 | 中文字幕综合在线观看 | 精品国产一区二区三区在线观看 | 天天干干 | 国产精品视频中文字幕 | 深夜福利视频免费观看 |