溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Nginx Rewrite的配置語法有哪些

發布時間:2020-11-04 16:27:55 來源:億速云 閱讀:187 作者:Leah 欄目:開發技術

Nginx Rewrite的配置語法有哪些?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

Nginx Rewrite使用場景

1.URL地址跳轉,例如用戶訪問pm.com將其跳轉到baidu.com或者當用戶通過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/ {
  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只返回一個狀態碼即成功或失敗,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

Nginx Rewrite的配置語法有哪些

注:^/意思為以根(這里根目錄為/pm_code,對應域名為www.pm.com)開頭的url都會重定向到百度。

修改/etc/nginx/nginx.conf文件

將錯誤日志級別修改為notice使其能記錄到重定向信息(debug, info, notice, warn, error, crit越靠前記錄的信息越多)

Nginx Rewrite的配置語法有哪些

在http模塊中添加一行

rewrite_log on;(打開rewrite日志記錄)

測試

在瀏覽器地址欄中輸入www.pm.com(在hosts中已配置好),會重定向到百度首頁

Nginx Rewrite的配置語法有哪些

案例2:內部跳轉

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

Nginx Rewrite的配置語法有哪些

在/pm_code中創建文件2.html(內容222),在瀏覽器中輸入www.pm.com/1.html

Nginx Rewrite的配置語法有哪些

在錯誤日志中查看記錄

Nginx Rewrite的配置語法有哪些

使用return

在上述方法中,瀏覽器地址欄中顯示的是1.html,而網頁內容是2.html的內容,如果想要地址欄中也顯示2.html,將location中的內容更改為 return 302 /2.html; 或者 rewrite .* /2.html redirect;

使用正則

例:將www.pm.com/2020/* 重定向到 www.pm.com/2019/*

Nginx Rewrite的配置語法有哪些

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

將http跳轉到https

Nginx Rewrite的配置語法有哪些

看完上述內容,你們掌握Nginx Rewrite的配置語法有哪些的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女