亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

nginx try_files指令判斷文件是否存在實(shí)例

 更新時(shí)間:2015年02月13日 08:53:05   投稿:junjie  
這篇文章主要介紹了nginx try_files指令判斷文件是否存在實(shí)例,本文用一個(gè)實(shí)際需求講解try_files指令的使用,并給出配置示例,需要的朋友可以參考下

現(xiàn)在有這樣一個(gè)需求,網(wǎng)站根目錄下有靜態(tài)文件,static目錄下也有靜態(tài)文件,static目錄下的靜態(tài)文件是程序批量生成的,我想讓nginx在地址不變的前提下優(yōu)先使用static目錄里面的文件,如果不存在再使用根目錄下的靜態(tài)文件,比如訪問(wèn)首頁(yè)http://example.com/index.html則nginx返回/static/index.html,如果不存在返回/index.html。

經(jīng)過(guò)一番研究可以用if指令實(shí)現(xiàn),關(guān)鍵配置如下,這條配置需要放到靠前的位置

復(fù)制代碼 代碼如下:

if (-e $document_root/static$request_uri) {
 rewrite ^/(.*)$ /static/$1 break;
 break;
}

這里有兩點(diǎn)需要注意:

nginx變量默認(rèn)應(yīng)該開(kāi)頭有反斜線而結(jié)尾沒(méi)有。

nginx字符串和變量可以直接連接,如果可能有歧義可以花括號(hào)括起變量名稱(chēng),整個(gè)字符串必須加雙引號(hào)

復(fù)制代碼 代碼如下:
"${document_root}/static${request_uri}"

是用這種方式有一個(gè)缺點(diǎn),index指令指定的文件不會(huì)起作用,比如訪問(wèn)http://example.com/就會(huì)404,必須顯示的指定文件名才行http://example.com/index.html。可以用rewrite修復(fù),但是感覺(jué)不爽,在nginx陷阱頁(yè)面突然發(fā)現(xiàn)一個(gè)針對(duì)性的指令try_files

復(fù)制代碼 代碼如下:

set $static "/static";
try_files $static$uri $static$uri/index.html /index.php;

參考頁(yè)面

http://wiki.nginx.org/Pitfalls

后來(lái)發(fā)現(xiàn)$uri變量本身會(huì)自動(dòng)添加index.html后綴,經(jīng)過(guò)實(shí)驗(yàn)這樣寫(xiě)也是可以的

復(fù)制代碼 代碼如下:

if (-e "${document_root}/static${uri}") {
 rewrite ^/(.*)$ /static/$uri break;
}

if (-e $request_filename) {
 break;
}


因?yàn)樽詈蟛淮嬖诘奈募紝?xiě)到index.php去了所以上面rewrite之后需要再判斷一次文件存在。

相關(guān)文章

  • nginx?host繞過(guò)的三種方式

    nginx?host繞過(guò)的三種方式

    本文主要介紹了nginx?host繞過(guò)的三種方式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • 在Nginx用htpasswd對(duì)網(wǎng)站進(jìn)行密碼保護(hù)的設(shè)置方法

    在Nginx用htpasswd對(duì)網(wǎng)站進(jìn)行密碼保護(hù)的設(shè)置方法

    很多時(shí)候我們需要對(duì)一些網(wǎng)站進(jìn)行密碼保護(hù),比如團(tuán)隊(duì)內(nèi)部的站點(diǎn)、demo站點(diǎn)等等。這里所說(shuō)的密碼保護(hù)是服務(wù)器級(jí)的,并非網(wǎng)站應(yīng)用層的注冊(cè)登錄那一套,而是利用服務(wù)器配置和htpasswd文件來(lái)實(shí)現(xiàn)訪問(wèn)的密碼驗(yàn)證
    2013-06-06
  • Nginx服務(wù)器中用于生成縮略圖的模塊配置教程

    Nginx服務(wù)器中用于生成縮略圖的模塊配置教程

    這篇文章主要介紹了Nginx服務(wù)器中用于生成縮略圖的模塊配置教程,包括實(shí)時(shí)生成縮略圖到硬盤(pán)上的方法講解,需要的朋友可以參考下
    2016-01-01
  • nginx日志導(dǎo)入elasticsearch的方法示例

    nginx日志導(dǎo)入elasticsearch的方法示例

    這篇文章主要介紹了nginx日志導(dǎo)入elasticsearch的方法示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • Nginx反向代理多域名的HTTP和HTTPS服務(wù)的實(shí)現(xiàn)

    Nginx反向代理多域名的HTTP和HTTPS服務(wù)的實(shí)現(xiàn)

    這篇文章主要介紹了Nginx反向代理多域名的HTTP和HTTPS服務(wù)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • nginx反向代理用做內(nèi)網(wǎng)域名轉(zhuǎn)發(fā)

    nginx反向代理用做內(nèi)網(wǎng)域名轉(zhuǎn)發(fā)

    這篇文章主要為大家詳細(xì)介紹了nginx反向代理用做內(nèi)網(wǎng)域名轉(zhuǎn)發(fā),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • nginx反向代理文件下載失敗問(wèn)題及解決

    nginx反向代理文件下載失敗問(wèn)題及解決

    這篇文章主要介紹了nginx反向代理文件下載失敗問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • Nginx之rewrite重寫(xiě)的具體使用

    Nginx之rewrite重寫(xiě)的具體使用

    訪問(wèn)重寫(xiě)rewrite是Nginx HTTP請(qǐng)求處理過(guò)程中的一個(gè)重要功能,本文主要介紹了Nginx之rewrite重寫(xiě)的具體使用,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-05-05
  • Nginx服務(wù)器中強(qiáng)制使用緩存的配置及緩存優(yōu)先級(jí)的講解

    Nginx服務(wù)器中強(qiáng)制使用緩存的配置及緩存優(yōu)先級(jí)的講解

    這篇文章主要介紹了Nginx服務(wù)器中強(qiáng)制使用緩存的配置及緩存優(yōu)先級(jí)的講解,一定程度上可以幫助大家解決Nginx不緩存或緩存失效的問(wèn)題,需要的朋友可以參考下
    2016-01-01
  • Nginx反向代理學(xué)習(xí)實(shí)例教程

    Nginx反向代理學(xué)習(xí)實(shí)例教程

    nginx作為web服務(wù)器一個(gè)重要的功能就是反向代理,當(dāng)然你也可以使用nginx配置正向代理,這篇文章主要給大家介紹了關(guān)于Nginx反向代理的相關(guān)資料,需要的朋友可以參考下
    2021-10-10

最新評(píng)論