nginx目錄路徑重定向的方法
如果希望域名后邊跟隨的路徑指向本地磁盤的其他目錄,而不是默認(rèn)的web目錄時(shí),需要設(shè)置nginx目錄訪問重定向. 應(yīng)用場景:dashidan.com/image自動(dòng)跳轉(zhuǎn)到dashidan.com/folderName/image.nginx目錄路徑重定向的四種實(shí)現(xiàn)方式.修改root映射,通過Nginx rewrite內(nèi)部跳轉(zhuǎn),設(shè)置別名alias映射實(shí)現(xiàn),通過nginx的permanent 301絕對跳轉(zhuǎn)實(shí)現(xiàn).
1 nginx修改root映射
修改root映射實(shí)現(xiàn)nginx目錄訪問重定向是最簡單的方式, 推薦采用這一種.
location /image { root /folderName; }
2 通過nginx rewrite內(nèi)部跳轉(zhuǎn)實(shí)現(xiàn)訪問重定向
nginx配置代碼示例:
location /image { rewrite ^/image/(.*)$ /folderName/image/$1 last; }
3 nginx設(shè)置別名alias映射實(shí)現(xiàn)
配置示例:
location /image { alias /folderName/image; #這里寫絕對路徑 }
4 通過nginx的permanent 301絕對跳轉(zhuǎn)實(shí)現(xiàn)
配置示例:
location /image { rewrite ^/image/(.*)$ http://dashidan.com/folderName/image/$1; }
5 通過判斷uri實(shí)現(xiàn)頁面跳轉(zhuǎn)
配置示例:
if ( $request_uri ~* ^(/image)){ rewrite ^/image/(.*)$ /folderName/image/$1 last; }
nginx location匹配規(guī)則
location匹配命令
~ #波浪線表示執(zhí)行一個(gè)正則匹配,區(qū)分大小寫
~* #表示執(zhí)行一個(gè)正則匹配,不區(qū)分大小寫
^~ #^~表示普通字符匹配,如果該選項(xiàng)匹配,只匹配該選項(xiàng),不匹配別的選項(xiàng),一般用來匹配目錄
= #進(jìn)行普通字符精確匹配
@ #"@" 定義一個(gè)命名的 location,使用在內(nèi)部定向時(shí),例如 error_page, try_files
- =前綴的指令嚴(yán)格匹配這個(gè)查詢。如果找到,停止搜索。
- 所有剩下的常規(guī)字符串,最長的匹配。如果這個(gè)匹配使用^〜前綴,搜索停止。
- 正則表達(dá)式,在配置文件中定義的順序。
- 如果第3條規(guī)則產(chǎn)生匹配的話,結(jié)果被使用。否則,如同從第2條規(guī)則被使用。
location 匹配的優(yōu)先級(與location在配置文件中的順序無關(guān))
= 精確匹配會(huì)第一個(gè)被處理。如果發(fā)現(xiàn)精確匹配,nginx停止搜索其他匹配。
普通字符匹配,正則表達(dá)式規(guī)則和長的塊規(guī)則將被優(yōu)先和查詢匹配,也就是說如果該項(xiàng)匹配還需去看有沒有正則表達(dá)式匹配和更長的匹配。
^~ 則只匹配該規(guī)則,nginx停止搜索其他匹配,否則nginx會(huì)繼續(xù)處理其他location指令。
最后匹配理帶有"~"和"~*"的指令,如果找到相應(yīng)的匹配,則nginx停止搜索其他匹配;當(dāng)沒有正則表達(dá)式或者沒有正則表達(dá)式被匹配的情況下,那么匹配程度最高的逐字匹配指令會(huì)被使用。
location = / { # 只匹配"/". [ configuration A ] } location / { # 匹配任何請求,因?yàn)樗姓埱蠖际且?/"開始 # 但是更長字符匹配或者正則表達(dá)式匹配會(huì)優(yōu)先匹配 [ configuration B ] } location ^~ /images/ { # 匹配任何以 /images/ 開始的請求,并停止匹配 其它location [ configuration C ] } location ~* \.(gif|jpg|jpeg)$ { # 匹配以 gif, jpg, or jpeg結(jié)尾的請求. # 但是所有 /images/ 目錄的請求將由 [Configuration C]處理. [ configuration D ] }
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
在Linux系統(tǒng)中將Redmine和SVN整合入Nginx的方法
這篇文章主要介紹了在Linux系統(tǒng)中將Redmine和SVN整合入Nginx的方法,示例基于CentOS系統(tǒng),并用到了Ruby腳本,需要的朋友可以參考下2015-06-06在Nginx服務(wù)器上配置Google反向代理的基本方法
這篇文章主要介紹了在Nginx服務(wù)器上配置Google反向代理的基本方法,文中使用到了SSL來加密反向代理,需要的朋友可以參考下2015-12-12iis+nginx實(shí)現(xiàn)負(fù)載均衡的詳細(xì)步驟
這篇文章主要為大家詳細(xì)介紹了iis+nginx實(shí)現(xiàn)負(fù)載均衡的詳細(xì)步驟 ,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07