欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

首頁綜合 正文
目錄

柚子快報(bào)邀請碼778899分享:正則表達(dá)式

柚子快報(bào)邀請碼778899分享:正則表達(dá)式

http://yzkb.51969.com/

Nginx正則表達(dá)式

常用正則表達(dá)式元字符

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

示例:^hello 匹配以 "hello" 開頭的字符串, 示例:^/(user|profile): 匹配以 "/user" 或 "/profile" 開頭的 URI。 $:匹配輸入字符串的結(jié)束位置

示例:world$ 匹配以 "world" 結(jié)尾的字符串 *:匹配前面的字符零次或多次

示例:colou*r 匹配 "color" 或 "colour" +:匹配前面的字符一次或多次

示例:go+l 匹配 "gol", "gool", "gooool", 等等 ?:匹配前面的字符零次或一次

示例:apple(s)? 匹配 "apple" 或 "apples" .:匹配除 "\n" 之外的任何單個(gè)字符

示例:b.t 匹配 "bat", "but", "b@t", 等等 \:將后面接著的字符標(biāo)記為一個(gè)特殊字符

示例:\.jpg$: 匹配以 ".jpg" 結(jié)尾的 URI。 示例:\d+ 匹配一個(gè)或多個(gè)數(shù)字 {n}:重復(fù) n 次

示例:a{3} 匹配 "aaa" {n,}:重復(fù) n 次或更多次

示例:b{2,} 匹配 "bb", "bbb", "bbbb", 等等 {n,m}:重復(fù) n 到 m 次

示例:c{2,4} 匹配 "cc", "ccc", "cccc" []:定義匹配的字符范圍

示例:[aeiou] 匹配任何一個(gè)元音字母 示例:[0-9] 匹配任何一個(gè)數(shù)字 [c]:匹配單個(gè)字符 c

示例:[abc] 匹配 "a", "b", 或 "c" [a-z]:匹配 a-z 小寫字母的任意一個(gè)

示例:[a-z] 匹配任何一個(gè)小寫字母 [a-zA-Z0-9]:匹配所有大小寫字母或數(shù)字

示例:[a-zA-Z0-9] 匹配任何一個(gè)大小寫字母或數(shù)字 ():表達(dá)式的開始和結(jié)束位置

示例:(abc) 匹配 "abc" |:或運(yùn)算符

示例:cat|dog 匹配 "cat" 或 "dog" 這些正則表達(dá)式可用于識別特定的 URL 模式,并據(jù)此進(jìn)行重定向或其他操作。

Nginx Location基本操作

在 Nginx 配置中,location 主要分為三類:精確匹配、前綴匹配和正則表達(dá)式匹配。

精確匹配:指定完整的 URI 進(jìn)行匹配。location = / {...} 前綴匹配:指定 URI 的前綴進(jìn)行匹配。location / {...} 正則表達(dá)式匹配:使用正則表達(dá)式進(jìn)行匹配。正則匹配:location ~ / {...}

location = /about { ? ? # 精確匹配 } ? location /blog/ { ? ? # 前綴匹配 } ? location ~* \.(gif|jpg|jpeg)$ { ? ? # 正則表達(dá)式匹配 }

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

在 location 中,有一些常用的匹配規(guī)則,例如:

=: 精確匹配。也就是完全匹配 ^~: 前綴匹配,如果匹配成功,停止搜索其他 location。 ~ 和 ~*: 區(qū)分大小寫和不區(qū)分大小寫的正則表達(dá)式匹配。 !~ :區(qū)分大小寫的匹配取非。!~* :不區(qū)分大小寫的匹配取非。 這些匹配規(guī)則決定了如何匹配 URI,并且影響著 location 的優(yōu)先級

Location 優(yōu)先級

在 Nginx 中,location 的優(yōu)先級遵循“先精確匹配,再前綴匹配,最后正則表達(dá)式匹配”的原則。這意味著精確匹配的 location 會優(yōu)先匹配,其次是前綴匹配,最后是正則表達(dá)式匹配。

Location 示例說明

location = /about { # 精確匹配 } ? location /blog/ { # 前綴匹配 } ? location ~* \.(gif|jpg|jpeg)$ { # 正則表達(dá)式匹配 }

當(dāng)請求 URI 為 "/about" 時(shí),將匹配第一個(gè)規(guī)則,因?yàn)樗蔷_匹配。請求 URI 為 "/blog/some-article" 時(shí),將匹配第二個(gè)規(guī)則,因?yàn)樗乔熬Y匹配。而請求 URI 為 "/image.jpg" 時(shí),將匹配第三個(gè)規(guī)則,因?yàn)樗钦齽t表達(dá)式匹配。

location = / {

# 這里匹配根目錄的請求,不包括任何額外的路徑

# =為精確匹配 / ,主機(jī)名后面不能帶任何字符串,比如訪問 / 和 /data,則 / 匹配,/data 不匹配

再比如 location = /abc,則只匹配/abc ,/abc/或 /abcd不匹配

}

location /user/ {

# 匹配以 /user/ 開頭的所有請求,比如 /user/profile、/user/settings 等

# 匹配任何以 /user/ 開頭的地址,匹配符合以后,還要繼續(xù)往下搜索其它 location

只有其它 location后面的正則表達(dá)式?jīng)]有匹配到時(shí),才會采用這一條

}

location ~* \.(css|js)$ {

# 匹配所有以 .css 或 .js 結(jié)尾的請求,不區(qū)分大小寫

}

location ^~ /admin {

# 匹配以 /admin 開頭的請求,并且停止匹配其它正則規(guī)則

}

location ~ ^/article/(\d+) {

# 匹配類似 /article/123、/article/456 這樣的數(shù)字結(jié)尾的請求

}

Location 匹配順序

在 Nginx 中,location 的匹配順序非常重要。通常情況下,應(yīng)該按照從精確匹配到前綴匹配再到正則表達(dá)式匹配的順序進(jìn)行配置,以確保匹配的準(zhǔn)確性。

三個(gè)匹配規(guī)則定義

直接匹配網(wǎng)站根

第一個(gè)必選規(guī)則直接匹配網(wǎng)站根,通過域名訪問網(wǎng)站首頁比較頻繁,使用這個(gè)會加速處理,比如說官網(wǎng),可以是一個(gè)靜態(tài)首頁,也可以直接轉(zhuǎn)發(fā)給后端應(yīng)用服務(wù)器

對于直接匹配網(wǎng)站根的需求,可以使用如下配置:

location = / { # 處理根目錄請求? ? ? root ? html; ? ??? ?index ?index.html index.htm; }

處理靜態(tài)文件請求

第二個(gè)必選規(guī)則是處理靜態(tài)文件請求,這是nginx作為http服務(wù)器的強(qiáng)項(xiàng)有兩種配置模式,目錄匹配或后綴匹配,任選其一或搭配使用

靜態(tài)文件通常位于特定的目錄中,可以使用前綴匹配來處理靜態(tài)文件請求:

目錄匹配:

location /static/ {

# 處理靜態(tài)文件請求

root /usr/share/nginx/html/;

index index.html index.htm;

try_files $uri $uri/ /dp/index.html = systemUpdate;

}

后綴匹配:

location ~* \.(xlsx|jpg)$ {

# 處理特定類型的請求

root /usr/share/nginx/html/file;

}

通用規(guī)則

第三個(gè)規(guī)則就是通用規(guī)則,比如用來轉(zhuǎn)發(fā)帶.php、.jsp后綴的動態(tài)請求到后端應(yīng)用服務(wù)器 非靜態(tài)文件請求就默認(rèn)是動態(tài)請求

location / {

proxy_pass http://127.0.0.1:8080;

}

Nginx Rewrite基本操作

rewrite 功能是利用 Nginx 提供的全局變量或自定義變量,結(jié)合正則表達(dá)式和標(biāo)志位來實(shí)現(xiàn) URL 的重寫和重定向。它通常用于處理域名更換后的跳轉(zhuǎn)、頁面地址變更的重定向、網(wǎng)站防盜鏈等需求。

rewrite 指令可以放置在 server、location 和 if 塊中,它默認(rèn)只對域名后面除了傳遞的參數(shù)之外的字符串進(jìn)行匹配重寫。比如,對于 URL http://www.baidu.com/abc/bbs/index.php?a=1&b=2,rewrite 只會對 /abc/bbs/index.php 部分進(jìn)行重寫。

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

使用 rewrite 可以對 URL 進(jìn)行重定向或重寫,常用于實(shí)現(xiàn)網(wǎng)站 URL 的美化、重定向等功能。

Nginx 通過 ngx_http_rewrite_module 模塊支持 URL 重寫,它也支持 if 條件判斷,但不支持 else。在進(jìn)行跳轉(zhuǎn)時(shí),從一個(gè) location 跳轉(zhuǎn)到另一個(gè) location,但最多只能執(zhí)行 10 次跳轉(zhuǎn),否則 Nginx 將返回 500 錯(cuò)誤。使用 PCRE 語法規(guī)則進(jìn)行匹配,并通過重寫模塊的 set 指令創(chuàng)建新的變量并設(shè)置其值

rewrite 執(zhí)行順序

ewrite 指令按照配置文件中的先后順序執(zhí)行,匹配成功后會立即執(zhí)行相應(yīng)的重定向或重寫操作。

執(zhí)行 server 塊內(nèi)的 rewrite 指令。進(jìn)行 location 匹配。在選定的 location 中執(zhí)行 rewrite 指令

flag 標(biāo)記說明 last:本條規(guī)則匹配完成后,繼續(xù)向下匹配新的 location URL 規(guī)則,一般用于 server 和 if 塊中。 break:本條規(guī)則匹配完成后立即終止,不再匹配后續(xù)的任何規(guī)則,一般用于 location 塊中。 redirect:返回 302 臨時(shí)重定向,瀏覽器地址欄會顯示跳轉(zhuǎn)后的 URL 地址。 permanent:返回 301 永久重定向,瀏覽器地址欄會顯示跳轉(zhuǎn)后的 URL 地址。

rewrite 和 location 區(qū)別

rewrite 和 location 在功能上有些相似,都能實(shí)現(xiàn)跳轉(zhuǎn),但主要區(qū)別在于:

rewrite 用于在同一域名內(nèi)更改獲取資源的路徑。location 用于對一類路徑進(jìn)行訪問控制或反向代理,也可以用proxy_pass將請求代理到其他機(jī)器。

Nginx Rewrite?示例

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

vim /usr/local/nginx/conf/nginx.conf #編輯nginx配置文件

server {

listen 80;

server_name www.tong.com; #域名修改

charset utf-8;

access_log /var/log/nginx/access.log; #日志修改

location / {

#添加域名重定向

if ($host = 'www.tong.com'){ #$host為rewrite全局變量,代表請求主機(jī)頭字段或主機(jī)名

rewrite ^/(.*)$ http://www.ctt.com/$1 permanent; #$1為正則匹配的內(nèi)容,即“域名/”之后的字符串

}

root html;

index index.html index.htm;

}

}

echo "192.168.80.20 www.tong.com www.ctt.com" >> /etc/hosts ? ?#修改本地host映射

#創(chuàng)建test/1.html

cd /usr/local/nginx/html

mkdir test #創(chuàng)建目錄

echo "測試web1" > test/1.html

systemctl restart nginx #重啟nginx服務(wù)

瀏覽器輸入模擬訪問 http://www.tong.com/test/1.html(雖然這個(gè)請求內(nèi)容是不存在的)

會跳轉(zhuǎn)到www.ctt.com/test/1.html,查看元素可以看到返回301,實(shí)現(xiàn)了永久重定向跳轉(zhuǎn),而且域名后的參數(shù)也正常跳轉(zhuǎn)。

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

server {

listen 80;

server_name www.tong.com; #域名修改

charset utf-8;

access_log /var/log/nginx/access.log; #日志修改

#設(shè)置是否合法的IP標(biāo)記

set $rewrite true; #設(shè)置變量$rewrite,變量值為boole值true

#判斷是否為合法IP

#remode_addr表示客戶端

if ($remote_addr = "192.168.80.20"){ #當(dāng)客戶端IP為192.168.80.20時(shí),將變量值設(shè)為false,不進(jìn)行重寫

set $rewrite false;

}

#除了合法IP,其它都是非法IP,進(jìn)行重寫跳轉(zhuǎn)維護(hù)頁面

if ($rewrite = true){ #當(dāng)變量值為true時(shí),進(jìn)行重寫

rewrite (.+) /web.html; #將域名后邊的路徑重寫成/web.html,例如www.tong.com/web.html

}

location = /web.html {

root /var/www/html; #網(wǎng)頁返回/var/www/html/web.html的內(nèi)容

}

location / {

root html;

index index.html index.htm;

}

}

柚子快報(bào)邀請碼778899分享:正則表達(dá)式

http://yzkb.51969.com/

精彩內(nèi)容

評論可見,查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場。

轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://m.gantiao.com.cn/post/19585539.html

發(fā)布評論

您暫未設(shè)置收款碼

請?jiān)谥黝}配置——文章設(shè)置里上傳

掃描二維碼手機(jī)訪問

文章目錄