nginx的try_files字段用法

 

  root html/test;php

        index  index.php index.html;html

        location / {nginx

                try_files $uri $uri/ @aaaaab;網站

        }.net

 

        //注意使用@符號,否則不成功htm

        location @aaaaab {資源

                include D:/nginx/html/test/.htaccess;get

        }it

try_files $uri $uri/ @aaaaab; 這句話是什麼意思?io

 

try_files從字面上理解就是嘗試文件,再結合環境理解就是「嘗試讀取文件」,那他想讀取什麼文件呢,

答:讀取靜態文件

 

$uri  這個是nginx的一個變量,存放着用戶訪問的地址,

好比:http://www.xxx.com/index.html, 那麼$uri就是 /index.html

 

$uri/ 表明訪問的是一個目錄,好比:http://www.xxx.com/hello/test/    ,那麼$uri/就是 /hello/test/

 

完整的解釋就是:try_files 去嘗試到網站目錄讀取用戶訪問的文件,若是第一個變量存在,就直接返回;

不存在繼續讀取第二個變量,若是存在,直接返回;不存在直接跳轉到第三個參數上。

好比用戶訪問這個網地址:http://www.xxx.com/test.html

try_files首先會判斷他是文件,仍是一個目錄,結果發現他是文件,與第一個參數 $uri變量匹配。

而後去到網站目錄下去查找test.html文件是否存在,若是存在直接讀取返回。若是不存在直接跳轉到第三個參數,而第三個參數是一個location,而這個location裏面配置的就是rewrite規則。

還有一種是以下寫法,會匹配到系統/html/XX路徑找資源

         root /html;         location /{         try_files $uri  $document_root$uri;         }  

相關文章
相關標籤/搜索