綠色資源網:您身邊(biān)最放心的安全下載(zǎi)站! 最新(xīn)軟件|熱(rè)門排行|軟(ruǎn)件(jiàn)分類|軟件(jiàn)專題|廠商大全(quán)

綠(lǜ)色資源網

技術教程
您的位置:首頁服務(wù)器類Web服務器(qì) → nginx 301 302重定向跳轉配置教程

nginx 301 302重定向(xiàng)跳轉配置教(jiāo)程

我要評論(lùn) 2013/06/30 23:17:31 來(lái)源:綠色資源網 編輯:www.chithemodel.com [大(dà) ] 評論:0 點擊:2859次

首先(xiān)看一個完整代碼(mǎ)示例(lì),關於nginx 301 302跳轉(zhuǎn)的。

301跳轉設置:

server {
listen 80;
server_name chithemodel.com;
rewrite ^/(.*) http://www.chithemodel.com/$1 permanent;
access_log off;
}

302跳轉設置:

server {
listen 80;
server_name chithemodel.com;
rewrite ^/(.*) http://www.chithemodel.com/$1 redirect;
access_log off;
}

在看下關於nginx 301 302跳轉的詳細(xì)說明文檔

server {
server_name chithemodel.com;
rewrite ^/(.*) http://www.chithemodel.com/$1 permanent;
}

last – 基本上都用(yòng)這個Flag。
break – 中止Rewirte,不在繼續匹配(pèi)
redirect – 返回臨(lín)時重(chóng)定向的HTTP狀態302
permanent – 返(fǎn)回永久(jiǔ)重定向的HTTP狀態301

Nginx的重定向用到了Nginx的HttpRewriteModule,下(xià)麵簡單(dān)解釋以下如何使用的方法(fǎ):
rewrite命令

nginx的rewrite相當於apache的rewriterule(大(dà)多數情(qíng)況(kuàng)下可以把原有apache的rewrite規則加(jiā)上引號就可以直接使(shǐ)用),它可以用在server,locations 和IF條件判(pàn)斷塊中,命令格式如(rú)下:
rewrite 正(zhèng)則表達式 替換(huàn)目標 flag標記(jì)
flag標記可以用以下幾種格(gé)式:
last – 基本上都用(yòng)這個Flag。
break – 中止Rewirte,不在繼續匹配
redirect – 返回臨時重定(dìng)向的HTTP狀態302
permanent – 返回永久重(chóng)定(dìng)向(xiàng)的HTTP狀(zhuàng)態301

特別注意:

last和break用來實現URL重寫(xiě),瀏覽器地址欄的URL地址(zhǐ)不變,但是在服務器端訪問(wèn)的路徑發生了變化;

redirect和permanent用(yòng)來實現URL跳轉,瀏覽(lǎn)器地址欄(lán)會顯示跳(tiào)轉(zhuǎn)後的URL地址;


例如下麵這段設定nginx將某個目錄下麵的文件重定向到另(lìng)一(yī)個目錄,$2對應第二個括號(.*)中對應的(de)字符串:
locations /download/ {
rewrite ^(/download/.*)/m/(.*)\..*$ $1/nginx-rewrite/$2.gz break;
}
nginx重定向的IF條件(jiàn)判斷

在server和locations兩種情況(kuàng)下可以使用(yòng)nginx的IF條(tiáo)件(jiàn)判斷,條(tiáo)件可以為以下(xià)幾(jǐ)種:
正則表達式(shì)

如:
匹配判斷
~ 為區分大小寫匹配; !~為區分大小寫不匹(pǐ)配
~* 為不區分大小寫匹配;!~為不區分大小寫不匹配(pèi)
例如下麵(miàn)設定nginx在用戶使用ie的使用重(chóng)定向到/nginx-ie目錄下:
if ($http_user_agent ~ MSIE) {
rewrite ^(.*)$ /nginx-ie/$1 break;
}
文件和目錄判斷
-f和!-f判斷是否存在文(wén)件
-d和!-d判斷是(shì)否存在目錄
-e和!-e判(pàn)斷是(shì)否存在文件或目錄
-x和(hé)!-x判斷文件是(shì)否可執行(háng)
例如(rú)下麵設定nginx在文件和(hé)目錄不存在的時候重定向:
if (!-e $request_filename) {
proxy_pass http://127.0.0.1;
}
return

返(fǎn)回http代碼,例如(rú)設置nginx防(fáng)盜(dào)鏈:
locations ~* \.(gif|jpg|png|swf|flv)$ {
valid_referers none blocked www.chithemodel.com www.test1.com;
if ($invalid_referer) {
return 404;
}

關鍵詞:nginx,重(chóng)定向

閱讀本文後您(nín)有什(shí)麽感想? 已有 人(rén)給出評價(jià)!

  • 1 歡迎喜歡
  • 1 白(bái)癡
  • 4 拜托
  • 4 哇
  • 2 加油
  • 2 鄙(bǐ)視