nginx中url地址重寫的實現(xiàn)
一.url重寫介紹【在進行url地址替換的時候,常常用完整的url地址進行替換】
可以在nginx上進行配置,將客戶端的訪問請求進行修改,隨后拿修改后的地址給客戶端進行響應。

如上圖所示,這是使用url地址重寫的兩種應用場景。
一種是https加密網(wǎng)站,nginx反向代理服務器可以對用戶的url地址進行重寫,加上https的前綴,
一種是當公司的業(yè)務結構發(fā)生變化的時候,用戶用之前的訪問地址不能訪問到之前想要訪問的內(nèi)容,這時候就可以使用nginx反向代理服務器的url地址重寫功能,將用戶的url地址進行重寫。使得用戶能夠再次以之前的訪問地址,訪問到之前想要訪問的內(nèi)容。
語法:
rewrite uri地址,新uri地址【標志】;
1.server ,location,if條件判斷
2.rewrite可以存在多條,依次進行處理
3.舊uri地址支持正則表達式;新uri支持反向引用
4.舊uri地址匹配客戶端時,不包括請求中的參數(shù)

如上圖所示,舊uri地址在匹配客戶端請求的時候,是不包含匹配中的參數(shù),舊uri地址中是會有一個問號,這個問號之后的東西就是uri地址中的參數(shù),
5.支持變量中的使用 $remote_addr這個表示客戶端的IP地址。

如上圖所示,如果客戶端的訪問請求,可以在location中經(jīng)歷10次的地址重寫,那么就會給客戶端返回500的錯誤。
標志flag
【很少去用,常常在地址改寫的時候,寫上完整的url地址?!?/p>
1)last
終止本location塊中的匹配,將新地址轉(zhuǎn)交給下一個location處理。
2)break
不會將新地址交給其他的location處理,只在本location中處理。

如上圖所示,這兩種方式都無法結束location的循環(huán),但是如上圖所示,如果被改寫的uri地址是一個完整的url地址的時候,那么此時就可以結束location的循環(huán)。
3)redirect
表示這次改寫是一次臨時重定向,狀態(tài)碼302
4)permanet
永久重定向,狀態(tài)碼301

如上圖所示,這是nginx的重寫模塊


如上圖所示,這就是對一個url地址的重寫過程。
案例1:改寫地址中的目錄名稱

如上圖所示,虛擬主機的網(wǎng)頁目錄是/data/python

如上圖所示,這是在虛擬主機的網(wǎng)頁目錄下新創(chuàng)建一個目錄,并且創(chuàng)建網(wǎng)頁,

如上圖所示,現(xiàn)在公司的業(yè)務結構發(fā)生變化,之前的mp3目錄改名了改成了music,那么用戶要想用之前的訪問請求,訪問之前的數(shù)據(jù)內(nèi)容,就需要我nginx反向代理服務器實現(xiàn)url地址重寫功能。

如上圖所示,這是在沒有配置nginx服務器反向代理服務器的地址重寫功能。

如上圖所示,這是在虛擬主機的配置文件中進行修改的過程,

如上圖所示,這是在修改虛擬主機配置文件之后,對語法進行檢查,隨后使得nginx軟件重新識別配置文件的操作。

如上圖所示,這就是url地址重寫的例子。
【考慮實際需求,當我們?nèi)嶋H部署一個業(yè)務的時候,不可能這個業(yè)務只有一個網(wǎng)頁,如果這個業(yè)務有多個網(wǎng)頁。當目錄名稱發(fā)生變化的時候,該怎么辦?】

如上圖所示,這是訪問目錄下有多個網(wǎng)頁。

如上圖所示,當新的數(shù)據(jù)目錄下有多個網(wǎng)頁,

如上圖所示,這是利用正則表達式的反向引用。將所有mp3替換成music,并且引用用戶想要訪問的網(wǎng)頁名稱。
$1的意思就是要引用(.*)中的內(nèi)容。
案例2:域名跳轉(zhuǎn)
客戶端訪問我的時候,后面的訪問地址是什么都可以,都會跳轉(zhuǎn)到我指定的新的網(wǎng)站上。

案例3:實現(xiàn)https的自動跳轉(zhuǎn)

如上圖所示,如果客戶端要訪問我www.linux.com的網(wǎng)站,那我們就自動給這個網(wǎng)站加上https的前綴
到此這篇關于nginx中url地址重寫的實現(xiàn)的文章就介紹到這了,更多相關nginx url地址重寫內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
瀏覽器控制臺報錯Failed to load module script:解決方
這篇文章主要為大家介紹了瀏覽器控制臺報錯Failed to load module script:解決方法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-11-11
Centos7.3 安裝部署Nginx并配置https的方法步驟
這篇文章主要介紹了Centos7.3 安裝部署Nginx并配置https的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-04-04
基于nginx的靜態(tài)網(wǎng)頁部署的實現(xiàn)
這篇文章主要介紹了基于nginx的靜態(tài)網(wǎng)頁部署的實現(xiàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-06-06

