摘要:語(yǔ)法規(guī)則定向路徑重寫(xiě)類型規(guī)則可以是字符串或者正則來(lái)表示想匹配的目標(biāo)定向路徑表示匹配到規(guī)則后要定向的路徑,如果規(guī)則里有正則,則可以使用來(lái)表示正則里的捕獲分組重寫(xiě)類型相當(dāng)于里德標(biāo)記,表示完成,瀏覽器地址欄地址不變本條規(guī)則匹配完成后,終止匹配,不
rewrite語(yǔ)法
server { rewrite {規(guī)則} {定向路徑} {重寫(xiě)類型} ; }
1、規(guī)則:可以是字符串或者正則來(lái)表示想匹配的目標(biāo)url
2、定向路徑:表示匹配到規(guī)則后要定向的路徑,如果規(guī)則里有正則,則可以使用$index來(lái)表示正則里的捕獲分組
3、重寫(xiě)類型:
last :相當(dāng)于Apache里德(L)標(biāo)記,表示完成rewrite,瀏覽器地址欄URL地址不變
break;本條規(guī)則匹配完成后,終止匹配,不再匹配后面的規(guī)則,瀏覽器地址欄URL地址不變
redirect:返回302臨時(shí)重定向,瀏覽器地址會(huì)顯示跳轉(zhuǎn)后的URL地址
permanent:返回301永久重定向,瀏覽器地址欄會(huì)顯示跳轉(zhuǎn)后的URL地址
舉例說(shuō)明server { rewrite /last.html /index.html last; # 訪問(wèn) /last.html 的時(shí)候,頁(yè)面內(nèi)容重寫(xiě)到 /index.html 中 rewrite /break.html /index.html break; # 訪問(wèn) /break.html 的時(shí)候,頁(yè)面內(nèi)容重寫(xiě)到 /index.html 中,并停止后續(xù)的匹配 rewrite /redirect.html /index.html redirect; # 訪問(wèn) /redirect.html 的時(shí)候,頁(yè)面直接302定向到 /index.html中 rewrite /permanent.html /index.html permanent; # 訪問(wèn) /permanent.html 的時(shí)候,頁(yè)面直接301定向到 /index.html中 rewrite ^/html/(.+?).html$ /post/$1.html permanent; # 把 /html/*.html => /post/*.html ,301定向 rewrite ^/search/([^/]+?)(/|$) /search.html?keyword=$1 permanent; # 把 /search/key => /search.html?keyword=key }
last和break的區(qū)別:
因?yàn)?01和302不能簡(jiǎn)單的只返回狀態(tài)碼,還必須有重定向的URL,這就是return指令無(wú)法返回301,302的原因了(return 只能返回除301、302之外的code)。
last一般寫(xiě)在server和if中,而break一般使用在location中
last不終止重寫(xiě)后的url匹配,即新的url會(huì)再?gòu)膕erver走一遍匹配流程,而break終止重寫(xiě)后的匹配
break和last都能組織繼續(xù)執(zhí)行后面的rewrite指令
在location里一旦返回break則直接生效并停止后續(xù)的匹配location
server { location / { rewrite /last/ /q.html last; rewrite /break/ /q.html break; } location = /q.html { return 400; } }
訪問(wèn)/last/時(shí)重寫(xiě)到/q.html,然后使用新的uri再匹配,正好匹配到locatoin = /q.html然后返回了400;
訪問(wèn)/break時(shí)重寫(xiě)到/q.html,由于返回了break,則直接停止了;
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/40526.html
摘要:即別名,與的匹配規(guī)則稍有不同。與的區(qū)別只能作用在中,而可以存在和中。后面必須要用結(jié)束,否則會(huì)找不到文件,而則對(duì)可有可無(wú)。 Nginx 安裝與配置規(guī)則入門(mén) nginx 安裝與運(yùn)行 (Mac OS環(huán)境) nginx 規(guī)則配置入門(mén) 一些命令行的配置 一、nginx 安裝與運(yùn)行 (Mac OS環(huán)境) 1. 安裝 nginx 可通過(guò) Homebrew 可直接安裝: $brew install...
摘要:本文同步在個(gè)人博客上,歡迎關(guān)注這篇文章整理了在前端開(kāi)發(fā)中,在開(kāi)發(fā)環(huán)境下使用重寫(xiě)及代理功能的方法。表示該規(guī)則是使用正則定義的,區(qū)分大小寫(xiě)。因此牢記在上下文中使用,而在上下文中使用。 本文同步在個(gè)人博客shymean.com上,歡迎關(guān)注 這篇文章整理了在前端開(kāi)發(fā)中,在開(kāi)發(fā)環(huán)境下使用nginx重寫(xiě)uri及代理功能的方法。 參考 nginx中文文檔 前端開(kāi)發(fā)者必備的 Nginx 知識(shí) Ngin...
摘要:語(yǔ)法如果相對(duì)域名或參數(shù)字符串起作用,可以使用全局變量匹配,也可以使用反向代理。不能返回限速,可以通過(guò)指令設(shè)置如果請(qǐng)求的文件名不存在,則反向代理到。 location正則寫(xiě)法 一個(gè)示例: location = / { # 精確匹配 / ,主機(jī)名后面不能帶任何字符串 [ configuration A ] } location / { # 因?yàn)樗械牡刂范家?/ 開(kāi)...
摘要:語(yǔ)法如果相對(duì)域名或參數(shù)字符串起作用,可以使用全局變量匹配,也可以使用反向代理。不能返回限速,可以通過(guò)指令設(shè)置如果請(qǐng)求的文件名不存在,則反向代理到。 1. location正則寫(xiě)法 一個(gè)示例: location = / { # 精確匹配 / ,主機(jī)名后面不能帶任何字符串 [ configuration A ] } location / { # 因?yàn)樗械牡刂范家?/ 開(kāi)...
摘要:什么是正向代理呢正向代理中,客戶端通過(guò)代理服務(wù)器從服務(wù)端收發(fā)數(shù)據(jù),即為正向代理。反向代理又是什么反向代理中,代理服務(wù)器替服務(wù)端收發(fā)數(shù)據(jù),所有的請(qǐng)求與相應(yīng)都經(jīng)過(guò)反向代理,可以用來(lái)實(shí)現(xiàn)數(shù)據(jù)緩存,負(fù)載均衡等。 什么是代理 在計(jì)算機(jī)中,客戶端A與服務(wù)端B進(jìn)行通信,中間加入中介C進(jìn)行數(shù)據(jù)傳遞,則形成了代理。來(lái)個(gè)淺顯易懂的比喻,三年級(jí)二班小明和小花談戀愛(ài),由于小明和小花座位離的太遠(yuǎn),這時(shí)候需要小王...
閱讀 2294·2021-09-23 11:52
閱讀 1962·2021-09-02 15:41
閱讀 3093·2019-08-30 10:47
閱讀 2049·2019-08-29 17:14
閱讀 2416·2019-08-29 16:16
閱讀 3247·2019-08-28 18:29
閱讀 3492·2019-08-26 13:30
閱讀 2665·2019-08-26 10:49