Nginx try_files


Nginx try_files

如下所示,當我們有多個HTML文件對應多個URL,想最快把URL中的后綴 .html 去除掉,又不影響其他接口。該怎樣做呢?

# 未去掉前
https://test.com/about.html
https://test.com/home.html
https://test.com/fdsagas

# 去掉.html后
https://test.com/about
https://test.com/home


這個時候普通的rewrite做起來就很繁瑣,try_files就登場了。Nginx配置如下

location / {
    # 指定nginx查找這個路徑下文件 
    root /root/test/ui;
    # 重定向所有.html后綴
    # 重定向前 /about.html -> 重定向后 /about
    if ($request_uri ~ ^/(.*)\.html$) {
    	return 301 /$1;
    }
    # Tries the uri, .html file and the news prefix.
    # 1.$uri -> /about
    # 2.$uri/ -> /about/
    # 3.$uri.html -> /about.html
    # 4./index.html?$args
    # 從第一個開始匹配這個這些文件名 匹配不到就直接返回最有一個文件 /index.html
    try_files $uri $uri/ $uri.html /index.html?$args;
}

無解釋配置

location / {
    root /root/test/ui;
    if ($request_uri ~ ^/(.*)\.html$) {
        return 301 /$1;
    }
    try_files $uri $uri/ $uri.html /index.html?$args;
}


免責聲明!

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



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