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; }