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;
}
posted @   TY520  阅读(24786)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示