最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Nginx的重寫Rewrite使用示例分析

 更新時間:2022年05月26日 14:55:31   作者:活老鬼  
這篇文章主要介紹了Nginx Rewrite功能使用,rewrite是Nginx服務(wù)器提供的一個重要基本功能,主要作用用來實現(xiàn)URL地址重寫,需要的朋友可以參考下

一、Nginx Rewrite概述

Nginx Rewrite是Nginx服務(wù)器提供的一個重要基本功能,主要用于實現(xiàn)URL的重寫和重定向。

Nginx Rewrite的作用:

  • URL地址規(guī)范化:通過重寫URL,使其看起來更規(guī)范,更符合開發(fā)及產(chǎn)品人員的需求。
  • 搜索引擎優(yōu)化(SEO):將動態(tài)URL地址偽裝成靜態(tài)地址提供服務(wù),有助于搜索引擎更好地收錄網(wǎng)站內(nèi)容,提升用戶體驗。
  • 域名跳轉(zhuǎn):在網(wǎng)站更換新域名后,通過Nginx Rewrite實現(xiàn)舊域名的訪問跳轉(zhuǎn)到新域名上,確保用戶能夠順利訪問網(wǎng)站。
  • 基于特定條件的URL調(diào)整:根據(jù)特殊變量、目錄、客戶端的信息等條件進(jìn)行URL調(diào)整,以滿足不同的訪問需求。

二、常用的Nginx正則表達(dá)式

常用正則表達(dá)式解釋
^匹配輸入字符串的起始位置
$匹配輸入字符串的結(jié)束位置
匹配前面的字符零次或多次
+匹配前面的字符一次或多次
?匹配前面的字符零次或一次
.匹配除“\n”之外的任何單個字符
\將后面接著的字符標(biāo)記為一個特殊字符或一個原義字符或一個向后引用
\d匹配純數(shù)字[0-9]
\D匹配非數(shù)字
\s匹配空白符
\S匹配非空白符
\w任意單詞字符包括下劃線[A-Za-z0-9_]
\W匹配非單詞
{n}匹配前一個字符重復(fù) n 次
{n,}匹配前一個字符重復(fù) n 次或更多次
{n,m}匹配前一個字符重復(fù) n 到 m 次
[]定義匹配的字符范圍
() 表達(dá)式的開始和結(jié)束位置
邏輯或運算符

三、Rewrite規(guī)則

1.Rewrite跳轉(zhuǎn)實現(xiàn)

  • Nginx:通過ngx_http_rewrite_module 模塊支持URL重寫、支持if條件判斷,但不支持else
  • 跳轉(zhuǎn):從一個 location跳轉(zhuǎn)到另一個location,循環(huán)最多可以執(zhí)行10次,超過后nginx將返回500錯誤
  • PCRE支持:perl兼容正則表達(dá)式的語法規(guī)則匹配
  • 重寫模塊 set 指令:創(chuàng)建新的變量并設(shè)其值

2.Rewrite執(zhí)行順序

  • 執(zhí)行 server 塊里面的 rewrite 指令。
  • 執(zhí)行 location 匹配。
  • 執(zhí)行選定的 location 中的 rewrite 指令。

3.Rewrite語法格式

語法格式:

rewrite <regex> <replacement> [flag];

  • regex :表示正則匹配規(guī)則。
  • replacement :表示跳轉(zhuǎn)后的內(nèi)容。
  • flag :表示 rewrite 支持的 flag 標(biāo)記。

Flag標(biāo)記說明:

  • last :本條規(guī)則匹配完成后,不終止重寫后的url匹配,一般用在 server 和 if 中。
  • break :本條規(guī)則匹配完成即終止,終止重寫后的url匹配,一般使用在 location 中。
  • redirect :返回302臨時重定向,瀏覽器地址會顯示跳轉(zhuǎn)后的URL地址。
  • permanent :返回301永久重定向,瀏覽器地址欄會顯示跳轉(zhuǎn)后的URL地址。

四、Rewrite應(yīng)用示例

1.基于域名的跳轉(zhuǎn)

現(xiàn)在公司舊域名www.xxxxxx01.com有業(yè)務(wù)需求變更,需要使用新域名www.xxxxxx02.com代替,但是舊域名不能廢除,需要跳轉(zhuǎn)到新域名上,而且后面的參數(shù)保持不變。

server {
	listen       80;
	server_name  www.bi01.com;    #域名修改	
	charset utf-8;
	access_log  /var/log/nginx/www.xxxxxx01.com-access.log;    #日志修改
	location / {
	#添加域名重定向
        if ($host = 'www.bi01.com'){    #$host為rewrite全局變量,代表請求主機頭字段或主機名
			rewrite ^/(.*)$ http://www.xxxxxx02.com/$1 permanent;    #$1為正則匹配的內(nèi)容,即“域名/”之后的字符串
        }
        root   html;
        index  index.html index.htm;
    }
}

2.基于客戶端IP訪問跳轉(zhuǎn)

今天公司業(yè)務(wù)新版本上線,要求所有 IP 訪問任何內(nèi)容都顯示一個固定維護(hù)頁面,只有公司 IP :192.168.80.10訪問正常。

server {
	listen       80;
	server_name  www.xxxxxx01.com;    #域名修改	
	charset utf-8;
	access_log  /var/log/nginx/www.xxxxxx01.com-access.log;    #日志修改
	location / {
	#添加域名重定向
        if ($host = 'www.bi01.com'){    #$host為rewrite全局變量,代表請求主機頭字段或主機名
			rewrite ^/(.*)$ http://www.xxxxxx02.com/$1 permanent;    #$1為正則匹配的內(nèi)容,即“域名/”之后的字符串
        }
        root   html;
        index  index.html index.htm;
    }
}

如果rewrite (.+) /weihu.html; 換成rewrite (.+) /weihu.html permanent; 的話,若不是 192.168.80.10 的主機訪問會使瀏覽器修改請求訪問的 URL 成 http://www.bi01.com/weihu.html 再請求訪問,這樣就會進(jìn)入一直在 rewrite 的死循環(huán),訪問請求會一直被重寫成http://www.bi01.com/weihu.html 再請求訪問

3.基于舊域名跳轉(zhuǎn)到新域名后追加目錄

現(xiàn)在訪問的是 http://bbs.xxxxxx01.com/post/,現(xiàn)在需要將這個域名下面的訪問都跳轉(zhuǎn)到http://www.xxxxxx01.com/bbs/post/

server {
	listen       80;
	server_name  bbs.xxxxxx101.com www.xxxxxx01.com;
	charset utf-8;
	access_log  /var/log/nginx/www.xxxxxx01.com-access.log;
	#添加
	location /post {
        rewrite (.+)$ http://www.xxxxxx01.com/bbs$1 permanent;		#這里的$1為位置變量,代表/post
    }
	location / {
        root   html;
        index  index.html index.htm;
    }
}

4.基于參數(shù)匹配的跳轉(zhuǎn)

現(xiàn)在訪問http://www.xxxxxx01.com/100-(100|200)-100.html 跳轉(zhuǎn)到http://www.xxxxxx01.com頁面。

server {
	listen       80;
	server_name  www.xxxxxx01.com;	
	charset utf-8;
	access_log  /var/log/nginx/www.xxxxxx01.com-access.log;
	if ($request_uri ~ ^/100-(100|200)-(\d+).html$) {
        rewrite (.+) http://www.xxxxxx01.com permanent;
    }
	location / {
        root   html;
        index  index.html index.htm;
    }
}
  • $request_uri:包含請求參數(shù)的原始URI,不包含主機名,如:http://www.xxxxxx101.com/abc/bbs/index.html?a=1&b=2 中的 /abc/bbs/index.php?a=1&b=2
  • $uri:這個變量指當(dāng)前的請求URI,不包括任何參數(shù),如:/abc/bbs/index.html
  • $document_uri:與$uri相同,這個變量指當(dāng)前的請求URI,不包括任何傳遞參數(shù),如:/abc/bbs/index.html

到此這篇關(guān)于Nginx的重寫Rewrite使用示例分析的文章就介紹到這了,更多相關(guān)Nginx Rewrite內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 一文讀懂Ingress-Nginx的實踐

    一文讀懂Ingress-Nginx的實踐

    Ingress-Nginx是Kubernetes中管理HTTP和HTTPS流量的重要工具,本文深入探討Ingress-Nginx工作原理、配置及最佳實踐,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-11-11
  • Nginx的HA高可用的搭建的實現(xiàn)

    Nginx的HA高可用的搭建的實現(xiàn)

    高可用是一種系統(tǒng)設(shè)計策略,旨在確保服務(wù)或應(yīng)用在面對硬件故障、軟件缺陷或任何其他異常情況時,仍能持續(xù)穩(wěn)定地運行,本文主要介紹了Nginx的HA高可用的搭建,感興趣的可以了解一下
    2024-08-08
  • Nginx配置多個HTTPS域名的方法

    Nginx配置多個HTTPS域名的方法

    本篇文章主要介紹了Nginx配置多個HTTPS域名的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • Nginx?代理解決跨域問題多種情況分析

    Nginx?代理解決跨域問題多種情況分析

    這篇文章主要介紹了Nginx?代理解決跨域問題分析,通過用網(wǎng)站8080訪問Nginx代理后的接口地址,報錯分為多種情況,每種情況給大家詳細(xì)分析,感興趣的朋友一起看看吧
    2022-01-01
  • Nginx配置實現(xiàn)高效精準(zhǔn)的流量限制策略詳解

    Nginx配置實現(xiàn)高效精準(zhǔn)的流量限制策略詳解

    限流(Rate?Limitting)是服務(wù)降級的一種方式,通過限制系統(tǒng)的輸入和輸出流量以達(dá)到保護(hù)系統(tǒng)的目的,下面我們就來看看如何通過配置Nginx實現(xiàn)高效精準(zhǔn)的流量限制策略吧
    2024-02-02
  • nginx全局塊的user指令的實現(xiàn)示例

    nginx全局塊的user指令的實現(xiàn)示例

    user用于配置運行Nginx服務(wù)器的worker進(jìn)程的用戶和用戶組,本文主要介紹了nginx全局塊的user指令的實現(xiàn)示例,具有一定的參考價值,感興趣的可以了解一下
    2024-07-07
  • centos8中使用yum安裝nginx的詳細(xì)過程

    centos8中使用yum安裝nginx的詳細(xì)過程

    這篇文章主要介紹了centos8中怎樣使用yum安裝?nginx,centos8和centos7安裝nginx有點點不一樣,centos8?自帶了nginx?1.14.1?,我們先升級到新穩(wěn)定版1.20.1,具體安裝方法跟隨小編一起學(xué)習(xí)下吧
    2023-03-03
  • nginx配置https加密訪問的詳細(xì)教程

    nginx配置https加密訪問的詳細(xì)教程

    這篇文章主要介紹了nginx配置https加密訪問的詳細(xì)教程,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-11-11
  • Nginx代理輸出縮放圖片的方法

    Nginx代理輸出縮放圖片的方法

    這篇文章主要為大家詳細(xì)介紹了Nginx代理輸出縮放圖片的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • nginx代理返回代碼499問題分析與處理

    nginx代理返回代碼499問題分析與處理

    我們通過nginx作為互聯(lián)網(wǎng)代理服務(wù)器,通過它實現(xiàn)我行內(nèi)部系統(tǒng)向互聯(lián)網(wǎng)系統(tǒng)的接口訪問及調(diào)用,但是在使用過程中,不時的會出現(xiàn)大量返回代碼為499的問題,所以本文我們對為什么nginx會返回499錯誤代碼展開分析和研究
    2023-06-06

最新評論

塔河县| 新蔡县| 民和| 白城市| 定日县| 治多县| 三明市| 灵山县| 宿松县| 山东省| 织金县| 治多县| 丹阳市| 蒙城县| 南木林县| 岳池县| 咸丰县| 图们市| 区。| 儋州市| 衡阳县| 大城县| 象州县| 桑日县| 邢台县| 宁城县| 广安市| 东乌珠穆沁旗| 手游| 松潘县| 武汉市| 衡南县| 涿鹿县| 张北县| 景德镇市| 庆云县| 抚远县| 日喀则市| 黄平县| 青州市| 定安县|