nginx?rewrite?用法如何使用rewrite去除URL中的特定參數(shù)
rewrite 基本介紹
rewrite是實現(xiàn)URL重寫的關(guān)鍵指令,根據(jù)regex (正則表達(dá)式)部分內(nèi)容,重定向到replacement,結(jié)尾是flag標(biāo)記。
基本語法:
rewrite <regex> <replacement> [flag]; 關(guān)鍵字 正則 替代內(nèi)容 flag標(biāo)記
- regex: 正則表達(dá)式語句進(jìn)行規(guī)則匹配
- replacement: 將正則匹配的內(nèi)容替換成replacement
- flag: last | break | redirect | permanent
- last : 本條規(guī)則匹配完成后,繼續(xù)向下匹配新的location URI規(guī)則
- break: 本條規(guī)則匹配完成即終止,不再匹配后面的任何規(guī)則
- redirect : 回302臨時重定向,瀏覽器地址會顯示跳轉(zhuǎn)后的URL地址 (防爬蟲)
- permanent : 返回301永久重定向,瀏覽器地址欄會顯示跳轉(zhuǎn)后的URL地址
rewrite 使用位置
- server : 在server中針對所有的請求
- location : 在 location 中則針對 單個匹配路徑的
- If
nginx rewrite 用法,用rewrite去除URL中的特定參數(shù)
日常服務(wù)中經(jīng)常會用Nginx做一層代理轉(zhuǎn)發(fā),把Nginx當(dāng)做前置機(jī)
比如,以下配置:
server { # 對外暴露 80 端口 listen 80; server_name 192.168.10.231; # 后端API地址暴露為:http://192.168.10.231/apis location /apis { proxy_pass http://127.0.0.1:8000/; proxy_pass_request_headers on; # 重寫URL 去除apis rewrite "^/apis/(.*)$" /$1 break; } }
這里的rewrite 就是為了去除URL中的/apis,實際的后端api中是沒有這個參數(shù)的,但是為了做到在Nginx轉(zhuǎn)發(fā)請求,前端需要加上這個參數(shù),以便于區(qū)別
比如前端的請求地址是
http://192.168.10.231/apis/user
那么實際上經(jīng)過Nginx轉(zhuǎn)發(fā)后請求的地址是
http://127.0.0.1:8000/user
rewrite “^/api/(.)”/1 break,路徑重寫:
(1)"^/api/(.)$":匹配路徑的正則表達(dá)式,用了分組語法就是*(.)**,把/api/以后的所有部分當(dāng)做1組;
(2)/$1:重寫的目標(biāo)路徑,這里用$1引用前面正則表達(dá)式匹配到的分組(組編號從1開始,也就是api),即/api/后面的所有。這樣新的路徑就是除去/api/以外的所有,就達(dá)到了去除/api前綴的目的
break:指令,常用的有2個,分別是:last、break;
(1)last:重寫路徑結(jié)束后,將得到的路徑重新進(jìn)行一次路徑匹配; (2)break:重寫路徑結(jié)束后,不再重新匹配路徑。
到此這篇關(guān)于nginx rewrite 用法如何使用rewrite去除URL中的特定參數(shù)的文章就介紹到這了,更多相關(guān)nginx rewrite 用法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
nginx配置https://localhost/index報404
本文主要介紹了Nginx配置導(dǎo)致頁面刷新時報404錯誤的問題,主要因為靜態(tài)文件路徑配置錯誤、前端路由問題和反向代理配置錯誤這幾種錯誤,下面就來介紹一下解決方法2024-12-12Nginx配置SSL證書出現(xiàn)PEM_read_bio_PrivateKey() failed錯誤解決
在配置GoDaddy的SSL證書并啟動Nginx時,可能遇到由于證書密鑰文件編碼問題導(dǎo)致的啟動失敗,具體表現(xiàn)為nginx報錯:PEM_read_bio_PrivateKey() failed,本文就來介紹一下,感興趣的可以了解學(xué)習(xí)2024-10-10nginx、Apache、IIS服務(wù)器解決 413 Request Entity Too Large問題方法匯總
這篇文章主要介紹了nginx、Apache、IIS三種服務(wù)器解決413 Request Entity Too Large問題的方法集合,需要的朋友可以參考下2014-05-05關(guān)閉nginx空主機(jī)頭 防止nginx空主機(jī)頭及惡意域名指向
nginx的默認(rèn)配置中的虛擬主機(jī)允許用戶通過IP訪問,或者通過未設(shè)置的域名訪問,比如有人惡意把他自己的域名指向了你的ip,需要的朋友可以參考下2016-09-09nginx部署后css、js、圖片等樣式不加載問題的兩種解決方案
這篇文章主要介紹了nginx部署后css、js、圖片等樣式不加載問題的兩種解決方案,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2023-12-12為高負(fù)載網(wǎng)絡(luò)優(yōu)化Nginx和Node.js的方法
如果不先對Nginx和Node.js的底層傳輸機(jī)制有所了解,并進(jìn)行針對性優(yōu)化,可能對兩者再細(xì)致的調(diào)優(yōu)也會徒勞無功。一般情況下,Nginx通過TCP socket來連接客戶端與上游應(yīng)用2013-02-02關(guān)于Nginx中虛擬主機(jī)的一些冷門知識小結(jié)
這篇文章主要給大家介紹了關(guān)于Nginx中虛擬主機(jī)的一些冷門知識,文中通過圖文以及實例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2022-03-03