語法:rewrite regex replacement flag;,如:
此處的$1用於引用(.*.jpg)匹配到的內容,又如:
rewrite ^/bbs/(.*)$ redirect;如上例所示,replacement可以是某個路徑,也可以是某個url
常見的flag
flag
作用last
基本上都用這個flag,表示當前的匹配結束,繼續下乙個匹配,最多匹配10個到20個
一旦此rewrite規則重寫完成後,就不再被後面其它的rewrite規則進行處理
而是由useragent重新對重寫後的url再一次發起請求,並從頭開始執行類似的過程
break
中止rewrite,不再繼續匹配
一旦此rewrite規則重寫完成後,由useragent對新的url重新發起請求,
且不再會被當前location內的任何rewrite規則所檢查
redirect
以臨時重定向的http狀態302返回新的url
permanent
以永久重定向的http狀態301返回新的url
rewrite模組的作用是用來執行url重定向。這個機制有利於去掉惡意訪問的url,也有利於搜尋引擎優化(seo)
nginx使用的語法源於perl相容正規表示式(pcre)庫,基本語法如下:
識別符號意義
^必須以^後的實體開頭
$必須以$前的實體結尾
.匹配任意字元
匹配指定字符集內的任意字元
[^]匹配任何不包括在指定字符集內的任意字串
()分組,組成一組用於匹配的實體,通常會有
例項:
//在/usr/local/nginx/html/下建立image目錄並上傳張**裡面
改變url並寫rewrite規則
//修改目錄名字
//寫rewrite規則
把資源放到/opt/目錄下,不是預設網頁目錄下了
[root@localhost html]# ls
50x.html imgs index.html
[root@localhost html]# mv imgs /opt/
//重寫規則
location /
location /image
location /imgs
仍可以訪問
也可以重定向網上的資源
last 一旦此rewrite規則重寫完成後,就不再被後面其它的rewrite規則進行處理,而是由useragent重新對重寫後的url再一次發起請求,並從頭開
if語法:if (condition)
應用場景:
常見的condition
測試指定路徑為檔案的可能性(-f,!-f)
測試指定路徑為目錄的可能性(-d,!-d)
測試檔案的存在性(-e,!-e)
檢查檔案是否有執行許可權(-x,!-x)
基於瀏覽器分離例項
//建立測試頁面
[root@localhost html]# pwd
/usr/local/nginx/html
[root@localhost html]# mkdir chrome
[root@localhost html]# echo "hello" > chrome/index.html
[root@localhost html]# mkdir firefox
[root@localhost html]# echo "he he" > firefox/index.html
//編輯配置檔案
在谷歌瀏覽
在火狐瀏覽
nginx URL 重寫if規則和nginx變數
url重寫 rewrite if指令 if condition 代表條件為真時的nginx操作 condition條件的寫法 1 變數名 如果變數的值為空,或者為以 0 開頭的任意字串,條件為假,其他則為真 if slow 2 使用 或者 比較變數的值 if request method post ...
Nginx URL重寫規則配置詳解
rewrite模組介紹 nginx的重寫模組是乙個簡單的正規表示式匹配與乙個虛擬堆疊機結合。依賴於pcre庫,因此需要安裝pcre。根據相關變數重定向和選擇不同的配置,從乙個location跳轉到另乙個location,不過這樣的迴圈最多可以執行10次,超過後nginx將返回500錯誤。同時,重寫模...
很不錯的NGINX URL重寫例項
本文介紹nginx url重寫的相關知識,包括301重定向的內容等,希望對大家有所幫助。nginx rewrite 實現二級網域名稱跳轉 當訪問跳轉到 方法一 這種方法瀏覽器位址會變www.jbxue.com test abc 實現訪問如下 複製 如下 server server 方法二 當訪問跳轉...