使用nginx的rewrite功能搭建文件服務

背景:爲了服務器文件的安全,不能將服務器的文件保存路徑設計暴露出來,可以使用nginx的rewrite功能隱藏文件的真實路徑

1.例子

rewrite “/pic/([0-9]{2})-([0-9]{2})-([0-9]{1,2})-C-([0-9]*).(png|gif|jpg|jpeg)$” /storage/bidding/20$1-$2/$3/Certification/$4.$5 last;

2.說明:

rewrite爲固定關鍵字,表示開始進行rewrite匹配規則

第一個regex部分是 ([0-9]{2}) ,這是一個正則表達式,匹配域名後面的路徑地址,對應後面的第一個參數$1

replacement部分 $1,是取自regex部分()裏的內容。匹配成功後跳轉到的路徑。

flag部分 last標識重寫匹配結束。

3.regex 常用正則表達式說明字符描述

\ 將後面接着的字符標記爲一個特殊字符或一個原義字符或一個向後引用。如“\n”匹配一個換行符,而“\$”則匹配“$”

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

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

* 匹配前面的字符零次或多次。如“ol*”能匹配“o”及“ol”、“oll”

+ 匹配前面的字符一次或多次。如“ol+”能匹配“ol”及“oll”、“oll”,但不能匹配“o”

? 匹配前面的字符零次或一次,例如“do(es)?”能匹配“do”或者“does”,"?"等效於"{0,1}"

. 匹配除“\n”之外的任何單個字符,若要匹配包括“\n”在內的任意字符,請使用諸如“[.\n]”之類的模式。

(pattern) 匹配括號內pattern並可以在後面獲取對應的匹配,常用$0...$9屬性獲取小括號中的匹配內容,要匹配圓括號字符需要\(Content\)

4.rewrite 廣泛的應用場景

Nginx的rewrite功能在企業裏應用非常廣泛:

可以調整用戶瀏覽的URL,看起來更規範,合乎開發及產品人員的需求。

爲了讓搜索引擎搜錄網站內容及用戶體驗更好,企業會將動態URL地址僞裝成靜態地址提供服務。

網址換新域名後,讓舊的訪問跳轉到新的域名上。例如,訪問京東的360buy.com會跳轉到jd.com

根據特殊變量、目錄、客戶端的信息進行URL調整等
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章