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

nginx 網(wǎng)頁(yè)匹配跳轉(zhuǎn)rewrite、location的具體使用

 更新時(shí)間:2024年05月27日 10:54:48   作者:沈陽(yáng)最速傳說(shuō)と疾走の猛虎!貴物刀一郎です  
本文主要介紹了nginx 網(wǎng)頁(yè)匹配跳轉(zhuǎn)rewrite、location的具體使用

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

常用的Nginx 正則表達(dá)式
^ :匹配輸入字符串的起始位置
$ :匹配輸入字符串的結(jié)束位置
* :匹配前面的字符零次或多次。如“ol*”能匹配“o”及“ol”、“oll”
+ :匹配前面的字符一次或多次。如“ol+”能匹配“ol”及“oll”、“olll”,但不能匹配“o”
? :匹配前面的字符零次或一次,例如“do(es)?”能匹配“do”或者“does”,”?”等效于”{0,1}”
. :匹配除“\n”之外的任何單個(gè)字符,若要匹配包括“\n”在內(nèi)的任意字符,請(qǐng)使用諸如“[.\n]”之                      類的模式
\ :將后面接著的字符標(biāo)記為一個(gè)特殊字符或一個(gè)原義字符或一個(gè)向后引用。如“\n”匹配一個(gè)換行符,而“\$”則匹配“$”
\d :匹配純數(shù)字[0-9]   \s :空白符    \w :任意單詞字符包括下劃線[A-Za-z0-9_]
{n} :重復(fù) n 次
{n,} :重復(fù) n 次或更多次
{n,m} :重復(fù) n 到 m 次
[] :定義匹配的字符范圍
[c] :匹配單個(gè)字符 c
[a-z] :匹配 a-z 小寫字母的任意一個(gè)
[a-zA-Z0-9] :匹配所有大小寫字母或數(shù)字
() :表達(dá)式的開始和結(jié)束位置
| :或運(yùn)算符

從功能看 rewrite 和 location 似乎有點(diǎn)像,都能實(shí)現(xiàn)跳轉(zhuǎn),主要區(qū)別在于 rewrite 是在同一域名內(nèi)更改獲取資源的路徑,而 location 是對(duì)一類路徑做控制訪問(wèn)或反向代理,還可以proxy_pass 到其他機(jī)器。

rewrite和location的區(qū)別

  • rewrite    先對(duì)用戶的URI訪問(wèn)路徑或者域名進(jìn)行重寫,再重定向請(qǐng)求
  • ?location   匹配用戶的URL訪問(wèn)路徑做頁(yè)面跳轉(zhuǎn)、訪問(wèn)控制和代理轉(zhuǎn)發(fā)

location

location 大致分為三類

精準(zhǔn)匹配:location = / {}
一般匹配:location / {}
正則匹配:location ~ / {}

location 常用的匹配規(guī)則

= :進(jìn)行普通字符精確匹配,也就是完全匹配。不加則是全部匹配
^~ :表示普通字符匹配。使用前綴匹配。如果匹配成功,則不再匹配其它 正則匹配location。
~ :區(qū)分大小寫的匹配。
~* :不區(qū)分大小寫的匹配。
!~ :區(qū)分大小寫的匹配取非。
!~* :不區(qū)分大小寫的匹配取非。

location 優(yōu)先級(jí)

首先精確匹配 =
其次前綴匹配 ^~
其次是按文件中順序的正則匹配 ~或~*
然后匹配不帶任何修飾符的一般前綴匹配
最后是交給 / 通用匹配

優(yōu)先級(jí)總結(jié)

1.(location =) 
2.(location 完整路徑) 
3.(location ^~ 路徑) 
4.(location ~,~* 正則順序) 
5.(location 部分起始路徑) 
6.(location /)

location示例:

1)location = / {}
=為精確匹配 / ,主機(jī)名后面不能帶任何字符串,比如訪問(wèn) / 和 /data,則 / 匹配,/data 不匹配
再比如 location = /abc,則只匹配/abc ,/abc/或 /abcd不匹配。若 location  /abc,則即匹配/abc 、/abcd/ 同時(shí)也匹配 /abc/。
?
(2)location / {}
因?yàn)樗械牡刂范家?/ 開頭,所以這條規(guī)則將匹配到所有請(qǐng)求 比如訪問(wèn) / 和 /data, 則 / 匹配, /data 也匹配,
但后面前綴路徑會(huì)和最長(zhǎng)字符串優(yōu)先匹配(最長(zhǎng)匹配)
?
?
(3) /documents/ {}
匹配任何以 /documents/ 開頭的地址,匹配符合以后,還要繼續(xù)往下搜索其它 location
只有其它 location后面的前綴路徑?jīng)]有匹配到時(shí),才會(huì)采用這一條
?
(4)location /documents/abc {}
匹配任何以 /documents/abc 開頭的地址,匹配符合以后,還要繼續(xù)往下搜索其它 location
只有其它 location后面的前綴路徑?jīng)]有匹配到時(shí),才會(huì)采用這一條
?
(5)location ^~ /images/ {}
匹配任何以 /images/ 開頭的地址,匹配符合以后,停止往下搜索正則,采用這一條
?
(6)location ~* \.(gif|jpg|jpeg)$ {}
匹配所有以 gif、jpg或jpeg 結(jié)尾的請(qǐng)求
然而,所有請(qǐng)求 /images/ 下的圖片會(huì)被 location ^~ /images/ 處理,因?yàn)?^~ 的優(yōu)先級(jí)更高,所以到達(dá)不了這一條正則
?
(7)location /images/abc {}
最長(zhǎng)字符匹配到 /images/abc,優(yōu)先級(jí)最低,繼續(xù)往下搜索其它 location,會(huì)發(fā)現(xiàn) ^~ 和 ~ 存在
?
(8)location ~ /images/abc {}
匹配以/images/abc 開頭的,優(yōu)先級(jí)次之,只有去掉 location ^~ /images/ 才會(huì)采用這一條
?
(9)location /images/abc/1.html {}
匹配/images/abc/1.html 文件,如果和正則location ~ /images/abc/1.html 相比,正則優(yōu)先級(jí)更高

實(shí)際網(wǎng)站使用中,至少有三個(gè)匹配規(guī)則定義

#第一個(gè)必選規(guī)則
直接匹配網(wǎng)站根,通過(guò)域名訪問(wèn)網(wǎng)站首頁(yè)比較頻繁,使用這個(gè)會(huì)加速處理,比如說(shuō)官網(wǎng)。
這里是直接轉(zhuǎn)發(fā)給后端應(yīng)用服務(wù)器了,也可以是一個(gè)靜態(tài)首頁(yè)
location = / {
    proxy_pass http://tomcat_server/;
}
?
#第二個(gè)必選規(guī)則是處理靜態(tài)文件請(qǐng)求,這是nginx作為http服務(wù)器的強(qiáng)項(xiàng)
有兩種配置模式,目錄匹配或后綴匹配,任選其一或搭配使用
location ^~ /static/ {
    root /webroot/static/;
}
?
location ~* .(html|gif|jpg|jpeg|png|css|js|ico)$ {
    root /webroot/res/;
}
?
#第三個(gè)規(guī)則就是通用規(guī)則,比如用來(lái)轉(zhuǎn)發(fā)帶.php、.jsp后綴的動(dòng)態(tài)請(qǐng)求到后端應(yīng)用服務(wù)器
非靜態(tài)文件請(qǐng)求就默認(rèn)是動(dòng)態(tài)請(qǐng)求
location / {
    proxy_pass http://tomcat_server;
}
?

rewrite

rewrite概述:

  • rewrite功能就是,使用nginx提供的全局變量或自己設(shè)置的變量,結(jié)合正則表達(dá)式和標(biāo)記位實(shí)現(xiàn)URL重寫以及重定向。 比如:更換域名后需要保持舊的域名能跳轉(zhuǎn)到新的域名上、某網(wǎng)頁(yè)發(fā)生改變需要跳轉(zhuǎn)到新的頁(yè)面、網(wǎng)站防盜鏈等等需求。

  • rewrite只能放在server{},location{},if{}中,并且默認(rèn)只能對(duì)域名后邊的除去傳遞的參數(shù)外的字符串起作用

rewrite默認(rèn)的地址重寫

例如 http://www.kgc.com/abc/bbs/index.php?a=1&b=2

只對(duì)/abc/bbs/index.php重寫。

rewrite默認(rèn)情況下只對(duì)從域名后面的根路徑開始到傳遞參數(shù)的?號(hào)前面的路徑進(jìn)行重寫
http://域名/舊url——> httpd://域名/新url    
rewrite  正則表達(dá)式 /新url

rewrite針對(duì)全域名路徑重寫

要加上協(xié)議的域名

http://舊域名/url————>http://新域名/url 
?rewrite ^/(.*)$ http://新域名/$1  permanent(頁(yè)面跳轉(zhuǎn));

使用標(biāo)記位permanent或redirect過(guò)程

http://舊域名/url ——rewrite———>http://新域名/url———>瀏覽器地址欄會(huì)改為http://新域名/url 再進(jìn)行訪問(wèn)-->location匹配url路徑  跳轉(zhuǎn)頁(yè)面

rewrite跳轉(zhuǎn)實(shí)現(xiàn)

rewrite 執(zhí)行順序如下:

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

rewrite語(yǔ)法:

rewrite <正則表達(dá)式><指定替換的內(nèi)容><flag標(biāo)記>

flag標(biāo)記說(shuō)明:?

  • last :本條規(guī)則匹配完成后,繼續(xù)向下匹配新的?
  • location URI規(guī)則,一般用在 server 和 if 中。 ?
  • break :本條規(guī)則匹配完成即終止,不再匹配后面的任何規(guī)則,一般使用在 location 中。?
  • redirect :返回302臨時(shí)重定向,瀏覽器地址會(huì)顯示跳轉(zhuǎn)后的URL地址。 
  • ?permanent :返回301永久重定向,瀏覽器地址欄會(huì)顯示跳轉(zhuǎn)后的URL地址。

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

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

vim /apps/nginx/conf/nginx.conf
#進(jìn)入nginx的配置文件里,根據(jù)安裝路徑查找

使用nginx -t檢查語(yǔ)法是否出錯(cuò)

 在該文件下輸入此配置,虛擬機(jī)ip,舊域名,新域名

 nginx -s reload重載nginx,去網(wǎng)頁(yè)上輸入http://www.accp.com,就會(huì)跳轉(zhuǎn)到hyh.com的域名了

rewrite 基于客戶端ip訪問(wèn)跳轉(zhuǎn)

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

vim nginx.conf

設(shè)置html里提供維護(hù)頁(yè)面的值

[root@localhost html]# pwd
/var/www/html
[root@localhost html]# echo '<hi>this is weihu web!<hi>' >weihu.html
[root@localhost html]# ls
weihu.html

 訪問(wèn)http://www.accp.com,顯示如下,則是成功

 我們可以配置一個(gè)可以正常訪問(wèn)的主機(jī)ip,僅讓此主機(jī)訪問(wèn)

 在本機(jī)打開此網(wǎng)頁(yè),可以訪問(wèn)

 如果想不止這臺(tái)主機(jī)

配置完成后,wq保存,nginx -t,檢查nginx是否有語(yǔ)法問(wèn)題

再systemctl restart nginx.service重啟服務(wù)

rewrite基于舊域名跳轉(zhuǎn)到新域名后面加目錄

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

 打開配置文件vim /usr/local/nginx/conf/nginx.conf

 改完后重啟,并查看nginx語(yǔ)法是否有誤。

windows本機(jī)host文件里也更改

 輸入:http://cxk.accp.com/xhz顯示:

 輸入http://cxk.accp.com/ikun

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

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

vim /usr/local/nginx/conf/nginx.conf
server {
    listen       80;
    server_name  www.kgc.com;       #域名修改
    charset utf-8;
    access_log  /var/log/nginx/www.kgc.com-access.log  main;

    if ($request_uri ~ ^/100-(100|200)-(\d+).html$) {
        rewrite (.*) http://www.kgc.com permanent;
    }

    location / {
        root   html;
        index  index.html index.htm;
    }
}
systemctl restart nginx

使用瀏覽器訪問(wèn) http://www.kgc.com/100-200-100.html 或 http://www.kgc.com/100-100-100.html 跳轉(zhuǎn)到http://www.kgc.com頁(yè)面。

 

$request_uri: 包含請(qǐng)求參數(shù)的原始URI,不包含主機(jī)名,如: http://www.kgc.com/abc/bbs/index.html?a=1&b=2中的/abc/bbs/index.php?a=1&b=2

  • $uri:這個(gè)變量指當(dāng)前的請(qǐng)求URI,不包括任何參數(shù),如: /abc/bbs/index.html
  • $document_uri: 與$uri相同, 這個(gè)變量指當(dāng)前的請(qǐng)求URI,不包括任何傳遞參數(shù),如:/abc/bbs/index.html

到此這篇關(guān)于nginx 網(wǎng)頁(yè)匹配跳轉(zhuǎn)rewrite、location的具體使用的文章就介紹到這了,更多相關(guān)nginx 網(wǎng)頁(yè)匹配跳轉(zhuǎn)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 在Nginx服務(wù)器中啟用SSL的配置方法

    在Nginx服務(wù)器中啟用SSL的配置方法

    這篇文章主要介紹了在Ningx服務(wù)器中啟用SSL的配置方法,本文前提是已經(jīng)在Linux系統(tǒng)下安裝好了OpenSSL,需要的朋友可以參考下
    2015-08-08
  • Ubuntu系統(tǒng)下安裝與完全卸載Nginx的步驟

    Ubuntu系統(tǒng)下安裝與完全卸載Nginx的步驟

    在Linux服務(wù)器上管理和部署Web服務(wù),Nginx是一個(gè)常見(jiàn)的選擇,因?yàn)樗母咝阅芎头€(wěn)定性,這篇文章主要介紹了Ubuntu系統(tǒng)下安裝與完全卸載Nginx的相關(guān)資料,需要的朋友可以參考下
    2025-08-08
  • Nginx負(fù)載均衡之upstream模塊簡(jiǎn)介與使用詳解

    Nginx負(fù)載均衡之upstream模塊簡(jiǎn)介與使用詳解

    nginx有一個(gè)最大的功能就是可以實(shí)現(xiàn)服務(wù)器的負(fù)載均衡,下面這篇文章主要給大家介紹了關(guān)于Nginx負(fù)載均衡之upstream模塊簡(jiǎn)介與使用的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-09-09
  • 網(wǎng)站如何通過(guò)nginx設(shè)置黑/白名單IP限制及國(guó)家城市IP訪問(wèn)限制

    網(wǎng)站如何通過(guò)nginx設(shè)置黑/白名單IP限制及國(guó)家城市IP訪問(wèn)限制

    如果你的服務(wù)器被攻擊很厲害,而且服務(wù)器是自己練手的,不需要其他用戶訪問(wèn)的,那么就可以配置一下nginx的白名單,下面這篇文章主要給大家介紹了關(guān)于網(wǎng)站如何通過(guò)nginx設(shè)置黑/白名單IP限制及國(guó)家城市IP訪問(wèn)限制的相關(guān)資料,需要的朋友可以參考下
    2022-07-07
  • nginx反向代理配置400,404,502等狀態(tài)的自定義頁(yè)面問(wèn)題

    nginx反向代理配置400,404,502等狀態(tài)的自定義頁(yè)面問(wèn)題

    這篇文章主要介紹了nginx反向代理配置400,404,502等狀態(tài)的自定義頁(yè)面問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • nginx中keepalive配置詳解

    nginx中keepalive配置詳解

    keepalive是長(zhǎng)連接的意思,本文主要介紹了nginx中keepalive配置詳解,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-08-08
  • 銀河麒麟(Kylin)離線安裝Nginx并部署多服務(wù)完整步驟

    銀河麒麟(Kylin)離線安裝Nginx并部署多服務(wù)完整步驟

    這篇文章主要介紹了銀河麒麟(Kylin)離線安裝Nginx并部署多服務(wù)的相關(guān)資料,包括依賴包下載、HTTPS配置、多端口站點(diǎn)部署等步驟,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2026-02-02
  • Nginx強(qiáng)制跳轉(zhuǎn)Https(Http訪問(wèn)跳轉(zhuǎn)Https)

    Nginx強(qiáng)制跳轉(zhuǎn)Https(Http訪問(wèn)跳轉(zhuǎn)Https)

    這篇文章主要為大家介紹了Http訪問(wèn)強(qiáng)制跳轉(zhuǎn)到Https的幾種方式詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-10-10
  • Nginx實(shí)現(xiàn)ChatGPT?API代理步驟

    Nginx實(shí)現(xiàn)ChatGPT?API代理步驟

    這篇文章主要為大家介紹了Nginx實(shí)現(xiàn)ChatGPT?API代理步驟詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-05-05
  • Nginx環(huán)境下WordPress的多站點(diǎn)功能配置詳解

    Nginx環(huán)境下WordPress的多站點(diǎn)功能配置詳解

    WordPress的多站點(diǎn)功能允許安裝一個(gè)WordPress程序的情況下,實(shí)現(xiàn)多個(gè)站點(diǎn)也就是一套程序,可以綁定多個(gè)域名或子域名,本文詳細(xì)介紹了在Nginx環(huán)境下WordPress的多站點(diǎn)功能配置方法
    2018-10-10

最新評(píng)論

牟定县| 孟津县| 汾阳市| 洛川县| 乌兰浩特市| 九龙坡区| 东阿县| 五原县| 建瓯市| 嘉义县| 济宁市| 安义县| 乐平市| 伊吾县| 元氏县| 修文县| 镇安县| 盱眙县| 高密市| 高台县| 双流县| 河曲县| 南康市| 怀集县| 德庆县| 桐梓县| 阿拉尔市| 湖南省| 紫云| 溧阳市| 高淳县| 中牟县| 苏州市| 凉城县| 天柱县| 高密市| 定结县| 怀集县| 澄城县| 西乌珠穆沁旗| 青田县|