Nginx的rewrite模組配置 網域名稱自動跳轉

2021-10-09 03:24:27 字數 3480 閱讀 4024

location概述

常用的正規表示式元字元

字元說明

^匹配輸入字串的起始位置

$匹配輸入字串的結束位置

*匹配前面的字元零次或多次

+匹配前面的字元一次或多次

?匹配前面的字元零次或一次

.匹配除"in"之外的任何單個字元

\將後面接著的字元標記為乙個特殊字元或乙個原義字元或乙個向後引用

\d匹配純數字

重複n次

重複n次或更多次

[c]匹配單個字元c

[a-z]

匹配a-z小寫字母的任意乙個

[a-za-z]

匹配a-z小寫字母或a-z大寫字母的任意乙個

rewrite命令語法

rewrite

>

>

[flag]

正則 跳轉後的內容 rewrite支援的flag標記

flag標記說明

標記說明

last

相當於apache的[l]標記,表示完成rewrite

break

本條規則匹配完成即終止,不再匹配後面的任何規則

redirect

返回302臨時重定向,瀏覽器位址會顯示跳轉後的url位址,爬蟲不會更新url

permanent·

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

last和break比較

last

break

使用場景

一般寫在server和if中

一般使用在location中

url匹配

不終止重寫後的url匹配

終止重寫後的url匹配

location = patt {} [精準匹配]

location patt {} [一般匹配]

location ~ patt {} [正則匹配]

標記說明

~執行一乙個正則匹配,區分大小寫

~*執行乙個正則匹配,不區分大小寫

!~執行乙個正則匹配,區分大小寫不匹配

!~*執行乙個正則匹配,不區分大小寫不匹配

^~普通字元匹配;使用字首匹配。如果匹配成功,則不再匹配其他location

=普通字元精確匹配。也就是完全匹配

@定義乙個命名的location,使用在內部定向時

匹配某個具體檔案

手工編譯安裝nginx

或者yum安裝nginx

##yum安裝nginx

rpm -uvh

#安裝nginx源

yum install nginx -y

需求現在公司舊網域名稱www.aaa.com有業務需求有變更,需要使用新網域名稱www.new.com代替,但是舊網域名稱不能廢除,需要跳轉到新網域名稱上

安裝配置解析dns

[root@localhost named]# vim /etc/nginx/conf.d/default.conf 

server

root /usr/share/nginx/html;

index index.html index.htm;

}

在dns中新增www.new.com網域名稱解析進行測試

某公司業務版本上線,所有ip訪問任何內容都顯示乙個固定維護頁面,只有公司ip : 192.168.110.110訪問正常。

[root@localhost opt]# vim /etc/nginx/conf.d/default.conf

server

#對非法ip進行判斷打上標記

if ($rewrite = true)

#匹配標記進行跳轉站點

基於舊網域名稱跳轉到新網域名稱後面加目錄,例如現在訪問的是bbb.aaa.com/post,現在需要將這個網域名稱下面的都跳轉到www.new.com/bbb注意保持網域名稱跳轉後的引數不變

[root@localhost opt]# vim /etc/nginx/conf.d/default.conf

server

location /

修改dns網域名稱解析檔案

bbb in a 192.168.110.15 修改為bbb

[root@localhost named]# vim /etc/nginx/conf.d/default.conf

if ($request_uri ~ ^/100-(100|200)-(\d+).html$)

在瀏覽器中輸入www.aaa.com/100-100-100.html跳轉至www.aaa.com頁面

基於目錄下所有php檔案跳轉

[root@localhost named]# vim /etc/nginx/conf.d/default.conf

location ~* /upload/.*\.php$

在瀏覽器中輸入www.aaa.com/upload/aaa.php跳轉至www.aaa.com頁面

基於最普通url請求的跳轉

[root@localhost named]# vim /etc/nginx/conf.d/default.conf

location ~* ^/1/test.html

在瀏覽器中輸入www.aaa.com/1/test.html跳轉至www.aaa.com頁

Nginx 基礎模組 rewrite

rewrite location 來吧!展示!rewrite規則可以實現對url的重寫,以及重定向 url訪問跳轉,支援開發設計,如頁面跳轉,相容性支援,展示效果等 seo優化 維護 後台維護 流量 等 安全nginx跳轉需求的實現方式 使用 rewrite進行匹配跳轉 使用if匹配全域性變數後跳轉...

Nginx的Rewrite的配置

nginx的rewrite 經過網上查閱和測試,發現nginx的rewrite規則和apache的rewite規則差別不是很大,幾乎可以直接使用。比如在apache中這樣寫規則 1rewrite 0 9 html viewthread.php?tid 1 last 而在nginx中寫成這樣寫是無法啟...

Nginx基礎的Rewrite規則

rewrite是nginx乙個特別重要的指令,該指令可以使用正規表示式改寫uri。可以指定乙個或多個rewrite指令,按順序匹配 區分大小寫匹配 不區分大小寫匹配 和 區分大小寫不匹配及不區分大小寫不匹配 f和 f 判斷是否存在檔案 d和 d 判斷是否存在目錄 e和 e 判斷是否存在檔案或目錄 x...