Nginx--try_files

  Nginx的配置語法靈活,可控制度很是高。在0.7之後的版本中加入了一個try_files指令,配合命名location,能夠部分替代本來經常使用的rewrite配置方式,提升解析效率。
 
做用域:server location
  location  / {
                root  /var/www/build;
                index  index.html index.htm;
                try_files $uri $uri/ @rewrites;
        }
 
location @rewrites {
             rewrite ^(.+)$ /index.html last;
        }

  

try_files $uri $uri/ @aaaaa; 這句話是什麼意思?
 
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規則。
相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息