<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
rewrite功能就是使用nginx提供的全域性變數或自己設定的變數,結合正規表示式和標記實現URL重寫以及重定向
例如:更換域名後需要保持舊的域名能夠轉到新的域名上、某網頁發生改變需要跳轉到新的頁面、網站防盜鏈等等需求
rewrite只能放在server{},location{},if{}中,並且預設只能對域名後面的除去傳遞的引數外的字串起作用
例如:http://www.xjj.com/a/we/index.php?id=1&u=str 只對/a/we/index.php重寫
Nginx:通過ngx_http_rewrite_module模組支援URL重寫、支援if條件判斷,但不支援else
跳轉:從一個location跳轉到另一個location,迴圈最多可以執行10次,超過後nginx將返回500錯誤
PCRE支援:perl相容正規表示式的語法規則匹配
重寫模組set指令:建立新的變數併為其賦值
①執行server快裡面的rewriter指令
②執行location匹配
③執行選定的location中的rewrite指令
調整使用者瀏覽的URL,看起來更規範,合乎開發及產品人員的需求
為了讓搜尋引擎搜錄網站內容及使用者體驗更好,企業會將動態URL地址偽裝成靜態地址提供服務
網址換新域名後,讓舊的存取跳轉到新的域名上;例如,存取京東的 360buy.com 會跳轉到 jd.com
伺服器端某些業務調整,比如根據特殊變數、目錄、使用者端的資訊進行URL調整等
語法rewrite <regex> <replacement> [flag];
regex:表示正則匹配規則
replacement:表示跳轉後的內容
flag:表示 rewrite 支援的 flag 標記
flag標記說明:
location大致可以分為以下三類:
localtion = / {}
=為精準匹配 /,主機名後面不能帶任何字串,比如存取 / 和 /xcf,則 / 匹配,/xcf 不匹配
location / {}
因為所有的地址都以 / 開頭,所以這條規則將匹配到所有的請求,比如存取 / 和 /data,則 / 匹配,/data也匹配
但若後面是正規表示式,則會和最長字串優先匹配(最長匹配)
location /documents/ {}
匹配任何以 /documents/ 開頭的地址,匹配符合以後,還要繼續往下搜尋其它 location
location /documents/abc {}
匹配任何以 /documents/abc 開頭的地址,匹配符合後,還要繼續往下搜尋其他 location
只有其他 location 後面的正規表示式沒有匹配到時,才會採用這一條
location ^~ /images/ {}
匹配任何以 /images/ 開頭的地址,匹配符合以後,停止往下搜尋正則,並採用這條
location ~* .(gif|jpg|jpeg)$ {}
匹配所有以 gif、jpg、jpeg 為結尾的請求
然而,所有請求 /images/ 下的圖片會被 location ^~ /images/ 處理,因為 ^~ 的優先順序更高,所以到達不了這一條正則
location /images/abc {}
最長字元匹配到 /images/abc,優先順序最低,繼續往下搜尋其它 location,會發現 ^~ 和 ~ 存在
location ~ /images/abc {}
匹配以 /images/abc 開頭的,優先順序次之,只有去掉 location ^~ /images 才會採用這一條
location /images/abc/1.html {}
匹配 /images/abc/1.html 檔案,如果和正則 ~ /images/abc/1.html 相比,正則優先順序更高
優先順序總結:
(location = 完整路徑) > (location ^~ 路徑) > (location ,* 正則順序) > (location 部分起始路徑) > (location /)
①第一個必選規則:
直接匹配網站根,通過域名存取網站首頁比較頻繁,使用這個會加速處理,比如說官網
可以是一個靜態首頁,也可以直接轉發給後端“應用伺服器”——>PHP、Apache(應用伺服器如下圖所示)
location / { root html; index index.html index.html; }
②第二個必選規則:
處理靜態檔案請求,這是nginx作為http伺服器的強項(①靜態請求處理的能力②高並行處理能力③資源消耗較低)
有兩種設定模式,目錄匹配或字尾匹配,任選其一或搭配使用
location ^~ /static/ { root /webroot/static/; } location ~* .(html|gif|jpg|jpeg|png|css|js|ico)$ { root /webroot/res/ ; }
③第三個必選規則:
就是通用規則,比如用來轉發帶.php、.jsp字尾的動態請求到後端應用伺服器
非靜態檔案請求就預設是動態請求(跳轉/反向代理)
upstream tomcat_server { 192.168.126.12:80 192.168.126.23:80 }
location / { proxy_ pass http://tomcat_server;
1.比較rewrite和location
相同點:都實現跳轉
不同點:rewrite是在同一域名內更改獲取資源的路徑
location是對一類路徑做控制存取或反向代理,還可以proxy_pass到其他機器
2.rewrite會寫在location裡,執行順序
3.location優先順序是怎麼排列的?
匹配某個具體檔案
(location = 完整路徑) > (location ^~ 完整路徑) > (location ~* 完整路徑) > (location ~ 完整路徑)> (location /)
用目錄做匹配存取某個檔案
(location = 目錄) > (location ^~ 目錄) > (location ~ 目錄) > (location ~* 目錄)> (location /)
4.檔案、目錄為什麼只會在區不區分大小寫上會有變動
正規表示式:目的是為了儘量精確的匹配
檔案——>儘量精確匹配,區分大小寫 精確,不區分更為精確
目錄——>儘量精確匹配,區分大小寫 更為精確,優先順序更高
到此這篇關於Nginx中location匹配以及rewrite重寫跳轉的文章就介紹到這了,更多相關Nginx location匹配及rewrite重寫內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45