nginx 的 try_files 指定使用


一、指令說明

try_files指令
語法:try_files file ... uri 或 try_files file ... = code
默認值:無
作用域:server location

其作用是按順序檢查文件是否存在,返回第一個找到的文件或文件夾(結尾加斜線表示為文件夾),如果所有的文件或文件夾都找不到,會進行一個內部重定向到最后一個參數。

需要注意的是,只有最后一個參數可以引起一個內部重定向,之前的參數只設置內部URI的指向。最后一個參數是回退URI且必須存在,否則會出現內部500錯誤。命名的location也可以使用在最后一個參數中。與rewrite指令不同,如果回退URI不是命名的location那么$args不會自動保留,如果你想保留$args,則必須明確聲明。

try_files $uri $uri/ /index.php?q=$uri&$args;

二、示例

所訪問fn目錄下如果文件不存在則跳轉到指定域名

 [root@linux-node2 /etc/nginx/conf.d]# cat fn.conf 
server {
    listen       80;
    server_name  192.168.5.72;

        location /fn {
            alias /usr/share/nginx/html/fn/;
            index index.html index.php;
            try_files $uri $uri/ @mudidi;
        }
        location @mudidi{
          proxy_pass http://www.baidu.com;
        }

}

 [root@linux-node2 ~]# ls /usr/share/nginx/html/fn/
a.txt  index  index.html  long.html

 跳轉到指定文件,404.html文件需要存在:

        location /fn {
            alias /usr/share/nginx/html/fn;
            index index.html index.php;
            try_files $uri $uri/ 404.html;
        }

 如果文件或目錄不存在,則跳轉到指定的502錯誤:

        location /fn {
            alias /usr/share/nginx/html/fn;
            index index.html index.php;
            try_files $uri $uri/ =502;
        }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM