Nginx中怎么實現(xiàn)重定向,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。
專注于為中小企業(yè)提供網(wǎng)站設(shè)計、網(wǎng)站制作服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)薛城免費做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了近千家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
flag標(biāo)記有: ? last 相當(dāng)于Apache里的[L]標(biāo)記,表示完成 rewrite ? break 終止匹配, 不再匹配后面的規(guī)則 ? redirect 返回302臨時重定向 地址欄會顯示跳轉(zhuǎn)后的地址 ? permanent 返回301永久重定向 地址欄會顯示跳轉(zhuǎn)后的地址 例如下面這段設(shè)定nginx將某個目錄下面的文件重定向到另一個目錄,$2對應(yīng)第二個括號(.*)中對應(yīng)的字符串: ?location /download/ {?rewrite ^(/download/.*)/m/(.*)\..*$ $1/nginx-rewrite/$2.gz break;?}
在server和location兩種情況下可以使用nginx的IF條件判斷,條件可以為以下幾種: 正則表達(dá)式 如: 匹配判斷 ~ 為區(qū)分大小寫匹配; !~為區(qū)分大小寫不匹配 ~* 為不區(qū)分大小寫匹配;!~為不區(qū)分大小寫不匹配 例如下面設(shè)定nginx在用戶使用ie的使用重定向到/ nginx-ie目錄下: if ($http_user_agent ~ MSIE) { 注釋 : __(MSIE ->ie瀏覽器內(nèi)核)__ rewrite ^(.*)$ /nginx-ie/$1 break; }
-f和!-f判斷是否存在文件 -d和!-d判斷是否存在目錄 -e和!-e判斷是否存在文件或目錄 -x和!-x判斷文件是否可執(zhí)行 例如下面設(shè)定nginx在文件和目錄不存在的時候重定 向: if (!-e $request_filename) { proxy_pass http://127.0.0.1/; }
返回http代碼,例如設(shè)置nginx防盜鏈: location ~* \.(gif|jpg|png|swf|flv)$ { valid_referers none blocked http://www.jefflei.com/ http://www.leizhenfang.com/; if ($invalid_referer) { return 404; } }
進(jìn)行了301重定向,把www .jefflei.com和jefflei.com合并,并把之前的域名也一并合并. 有兩種實現(xiàn)方法,第一種方法是判斷nginx核心變量host(老版本是http_host): server { server_name www.jefflei.com jefflei.com ; if ($host != 'www.jefflei.com' ) { rewrite ^/(.*)$ http://www.jefflei.com/$1 permanent; } ... }
第二種方法:
server { server_name jefflei.com; rewrite ^/(.*) http://www.jefflei.com/$1 permanent; } 測試了第一種方法ok,這兩種方法中, permanent是關(guān)鍵,詳細(xì)說明見nginx重定向規(guī)則說明。 last – 基本上都用這個Flag。 ?break – 中止Rewirte,不在繼續(xù)匹配 ?redirect – 返回臨時重定向的HTTP狀態(tài)302 ?permanent – 返回永久重定向的HTTP狀態(tài)301 好了,現(xiàn)在可以檢查結(jié)果,這里可以看返回的HTTP頭信息: http://www.seoconsultants.com/tools/headers.asp 第二種方法沒有測試成功...
輸入: /usr/local/nginx/sbin/nginx -t 提示: ? the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok configuration file /usr/local/nginx/conf/nginx.conf test is successful 測試成功~ 重啟nginx~ 輸入指令~ /usr/local/nginx/sbin/nginx -s reload 重啟之后測試一下~是否成功設(shè)定完成! 輸入指令~ curl -I imcat.tk 會輸出: HTTP/1.1 301 Moved Permanently ? Server: nginx/0.7.65 ? Date: Tue, 03 Aug 2010 01:12:37 GMT ? Content-Type: text/html ? Content-Length: 185 ? Connection: keep-alive ? Location: http://qinfy.net/
看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進(jìn)一步的了解或閱讀更多相關(guān)文章,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對創(chuàng)新互聯(lián)的支持。
分享文章:Nginx中怎么實現(xiàn)重定向
分享路徑:http://jinyejixie.com/article14/ppeede.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機(jī)、電子商務(wù)、品牌網(wǎng)站建設(shè)、App開發(fā)、微信小程序、云服務(wù)器
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)