Nginx Rewrite使用場景及配置方法解析

2022-09-24 11:30:13 字數 2022 閱讀 5150

nginx rewrwww.cppcns.comite使用場景

1.url位址跳轉,例如使用者訪問pm.com將其跳轉到baidu.cowwemyqhom或者當使用者通過http的方式訪問時,將其跳轉至https的方式訪問。

2.url偽靜態,將動態頁面顯示為靜態頁面方式的一種技術,減少動態url位址對外暴露過多的引數,提公升更高的安程式設計客棧全性。

3.搜尋引擎seo優化依賴於url路徑,以便支援搜尋引擎錄入

4.可以調整使用者瀏覽的url,看起來更規範,合乎開發及產品人員的需求。

配置語法

rewrite regex replacement [flag];

4中flag

last 停止處理後續rewrite指令集,跳出location作用域,並開始搜尋與更改後的uri相匹配的location,url位址不變

break 停止處理後續rewrite指令集,不會跳出location作用域,不再進行重新查詢,終止匹配,url位址不變

redirect 返回302臨時重定向,瀏覽器位址列會顯示跳轉後的url位址,爬蟲不會更新自己的url資料庫

permanent 返回301永久重定向,瀏覽器位址列會顯示跳轉後的url位址,爬蟲會更新自己的url資料庫

注:使用last和break時瀏覽器中的位址不會改變,使用redirect和permanent則會改變

舉例說明:

location /abc/

location /opq/

location /whsir/

輸入abc後,如果能匹配到whsir的內容,則返回200,否則返回404

輸入opq後,如果能匹配到whsir的內容,則返回403,否則返回404

last和break只返回乙個狀態碼即成功或失敗,redirect和permanent會先返回302或301,在返回成功或失敗

常用的nginx全域性變數:

例:$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:內部跳轉

更改/eowwemyqhtc/nginx/conf.d/rewrite.conf內容

在/pm_code中建立檔案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/owwemyqh* 重定向到 www.pm.com/2019/*

括號代表乙個整體,$1代表前面第乙個括號內的內容

將http跳轉到https

注:nginx 1.14版本後可以不用寫ssl on了,listen那裡寫成listen 443 ssl;

本文標題: nginx rewrite使用場景及配置方法解析

本文位址:

使用lua實現nginx rewrite

上一次上線只是簡單的把手機端的流量切換手機端的首頁,有點粗糙,現在需要把電腦端相應的頁面切換到電腦端的頁面,直接用nginx自帶的rewrite不太好做,所以用lua做 下面開始 nginx 配置 location mobile.lua 手機訪問重定向到移動版 end其實邏輯也很簡單,主要在ngin...

使用lua實現nginx rewrite

上一次上線只是簡單的把手機端的流量切換手機端的首頁,有點粗糙,現在需要把電腦端相應的頁面切換到電腦端的頁面,直接用nginx自帶的rewrite不太好做,所以用lua做 下面開始 nginx 配置 location mobile.lua 手機訪問重定向到移動版 end其實邏輯也很簡單,主要在ngin...

nginx rewrite 重寫規則

1注意點 在重寫的時候,一定要注意,if 和後面的括號是要有乙個空格的 if host com 2.在重寫的時候,需要使用正規表示式 host 代表網域名稱,首先判斷網域名稱,來看這個正則 rewrite de permanent 代表網域名稱下面的 com de 這個路徑下面的,重寫為 其中 1代...