nginx 重寫
阿新 • • 發佈:2018-04-27
error_log lis span break edi 接收 forbidden 變量 地址
rewrite指令可在 server 塊或者 location 塊中配置。
語法:
rewrite regex replacement [flag];
1、rewrite 接收的 uri 不包含 host 地址,不包含參數。可通過全局變量$uri、$args獲取。
2、flag:last、break、redirect、permannet
last:中止在本location塊中處理接收到的URI,並將此處重寫的URI作為一個新的URI,使用其他 location 塊進行處理。讓所有的location塊重新匹配和處理新的URI。
break:將重寫後的URI作為一個新的URI,在本塊中繼續進行處理。將重寫後的地址在當前的location塊中執行,不會將新的URI轉向到其他location塊。新的URI始終在同一個location塊中。
redirect:302臨時重定向。
permanent:301永久重定向。
3、rewrite_log
rewrite_log on; 開啟URL重寫日誌。以 notice 級別輸出到 error_log指令配置的日誌文件中。
通過重寫防盜鏈:
1 server{ 2 listen 80; 3 server_name www.test.com; 4 location ~* ^.+\.(gif|jpg|png)${ 5 valid_referers none blocked server_name *.test.com; 6if($invalid_referer){ 7 rewrite ^/ http://www.test.com/images/forbidden.png; 8 } 9 } 10 }
valid_referer指令設置有效的 referer,若referer有效則設置$invalid_referer為1,否則為0;
none表示沒有referer;
blocked表示referer被防火墻或者代理服務器刪除或偽裝;
server_names設置一個或多個URL。
nginx 重寫