Nginx Rewrite使用場景及代碼案例詳解
Nginx Rewrite使用場景
1.URL地址跳轉,例如用戶訪問pm.com將其跳轉到baidu.com或者當用戶通過http的方式訪問時,將其跳轉至https的方式訪問。
2.URL偽靜態(tài),將動態(tài)頁面顯示為靜態(tài)頁面方式的一種技術,減少動態(tài)URL地址對外暴露過多的參數,提升更高的安全性。
3.搜索引擎SEO優(yōu)化依賴于URL路徑,以便支持搜索引擎錄入
4.可以調整用戶瀏覽的URL,看起來更規(guī)范,合乎開發(fā)及產品人員的需求。
配置語法
rewrite regex replacement [flag];
4種flag
last 停止處理后續(xù)rewrite指令集,跳出location作用域,并開始搜索與更改后的URI相匹配的location,URL地址不變
break 停止處理后續(xù)rewrite指令集,不會跳出location作用域,不再進行重新查找,終止匹配,URL地址不變
redirect 返回302臨時重定向,瀏覽器地址欄會顯示跳轉后的URL地址,爬蟲不會更新自己的URL數據庫
permanent 返回301永久重定向,瀏覽器地址欄會顯示跳轉后的URL地址,爬蟲會更新自己的URL數據庫
注:使用last和break時瀏覽器中的地址不會改變,使用redirect和permanent則會改變
舉例說明:
location /abc/ { rewrite ^/abc/(.*) /whsir/$1 break; return 401; } location /opq/ { rewrite ^/opq/(.*) /whsir/$1 last; return 402; } location /whsir/ { return 403; }
輸入abc后,如果能匹配到whsir的內容,則返回200,否則返回404
輸入opq后,如果能匹配到whsir的內容,則返回403,否則返回404
last和break只返回一個狀態(tài)碼即成功或失敗,redirect和permanent會先返回302或301,在返回成功或失敗
常用的Nginx全局變量:
例:http://www.pm.com:99/aa/bb/test.php
$host www.pm.com
$server_port 99
$request_uri /aa/bb/test.php
$document_root /pm_code
$request_filename /pm_code/aa/bb/test.php
案例1:外部跳轉
打開lb01虛擬機,先將之前的自定義配置文件關閉,新建/etc/nginx/conf.d/rewrite.conf
注:^/意思為以根(這里根目錄為/pm_code,對應域名為www.pm.com)開頭的url都會重定向到百度。
修改/etc/nginx/nginx.conf文件
將錯誤日志級別修改為notice使其能記錄到重定向信息(debug, info, notice, warn, error, crit越靠前記錄的信息越多)
在http模塊中添加一行
rewrite_log on;(打開rewrite日志記錄)
測試
在瀏覽器地址欄中輸入www.pm.com(在hosts中已配置好),會重定向到百度首頁
案例2:內部跳轉
更改/etc/nginx/conf.d/rewrite.conf內容
在/pm_code中創(chuàng)建文件2.html(內容222),在瀏覽器中輸入www.pm.com/1.html
在錯誤日志中查看記錄
使用return
在上述方法中,瀏覽器地址欄中顯示的是1.html,而網頁內容是2.html的內容,如果想要地址欄中也顯示2.html,將location中的內容更改為 return 302 /2.html; 或者 rewrite .* /2.html redirect;
使用正則
例:將www.pm.com/2020/* 重定向到 www.pm.com/2019/*
括號代表一個整體,$1代表前面第一個括號內的內容
將http跳轉到https
注:nginx 1.14版本后可以不用寫ssl on了,listen那里寫成listen 443 ssl;
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
centos環(huán)境下nginx高可用集群的搭建指南
為了防止Nginx單點故障造成服務器癱瘓,本文介紹了Nginx實現高可用集群構建,下面這篇文章主要給大家介紹了關于centos環(huán)境下nginx高可用集群的搭建指南,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2022-07-07Nginx Rewrite規(guī)則與使用介紹和技巧實例
這篇文章主要介紹了Nginx Rewrite規(guī)則與使用介紹和技巧實例,本文講解了正則表達式匹配、文件及目錄匹配、flag標記、Nginx Rewrite相關指令等內容,需要的朋友可以參考下2015-01-01