rewite
在server塊下,會(huì)優(yōu)先執(zhí)行rewrite部門,然后才會(huì)去匹配location塊
server中的rewrite break和last沒(méi)什么區(qū)別,城市去匹配location,,所以沒(méi)須要用last再提倡新的請(qǐng)求,可以留空
location中的rewirte:
不寫last和break - 那么流程就是依次執(zhí)行這些rewrite
1. rewrite break - url重寫后,直接利用當(dāng)前資源,不再執(zhí)行l(wèi)ocation里余下的語(yǔ)句,完本錢次請(qǐng)求,地點(diǎn)欄url穩(wěn)定
2. rewrite last - url重寫后,頓時(shí)提倡一個(gè)新的請(qǐng)求,再次進(jìn)入server塊,重試location匹配,高出10次匹配不到報(bào)500錯(cuò)誤,地點(diǎn)欄url穩(wěn)定
3. rewrite redirect – 返回302姑且重定向,地點(diǎn)欄顯示重定向后的url,爬蟲(chóng)不會(huì)更新url(因?yàn)槭枪们遥?br />
4. rewrite permanent – 返回301永久重定向, 地點(diǎn)欄顯示重定向后的url,爬蟲(chóng)更新url
利用last會(huì)對(duì)server標(biāo)簽從頭提倡請(qǐng)求
假如location中rewrite后是對(duì)靜態(tài)資源的請(qǐng)求,不需要再舉辦其他匹配,一般要利用break或不寫,直接利用當(dāng)前l(fā)ocation中的數(shù)據(jù)源,完本錢次請(qǐng)求
假如location中rewrite后,還需要舉辦其他處理懲罰,如動(dòng)態(tài)fastcgi請(qǐng)求(.php,.jsp)等,要用last繼承提倡新的請(qǐng)求
(根的location利用last較量好, 因?yàn)榧偃缬?php等f(wàn)astcgi請(qǐng)求還要繼承處理懲罰)
利用alias指定源:必需利用last
if語(yǔ)句主要用來(lái)判定一些在rewrite語(yǔ)句中無(wú)法直接匹配的條件,好比檢測(cè)文件存在與否,http header,cookie等
location匹配法則及優(yōu)先級(jí)
= 嚴(yán)格匹配這個(gè)查詢。假如找到,遏制搜索。
^~ 匹配路徑的前綴,假如找到,遏制搜索。
~ 為區(qū)分巨細(xì)寫的正則匹配
~* 為不區(qū)分巨細(xì)寫匹配
優(yōu)先級(jí): =, ^~, ~/~*, 無(wú)
break語(yǔ)句
放在server塊rewrite語(yǔ)句前面
假如是直接請(qǐng)求某個(gè)真實(shí)存在的文件,則用break語(yǔ)句遏制rewrite查抄
if (-f $request_filename) {
break;
}