Nginx - 如何在使用 try_files 时为 index.html 添加标头

Posted

技术标签:

【中文标题】Nginx - 如何在使用 try_files 时为 index.html 添加标头【英文标题】:Nginx - how to add header for index.html when using try_files 【发布时间】:2017-10-08 21:28:14 【问题描述】:

我有以下配置(对于 Angular 应用):

location / 
    try_files $uri /index.html;
    add_header "Cache-Control" "no-cache" ;

现在我只想为index.html 添加该标题,而不是为任何其他文件添加该标题。该怎么做?

【问题讨论】:

尝试添加 location= /index.html //在这里添加指令 nginx.org/en/docs/http/ngx_http_core_module.html#location 带有“=”前缀的指令与查询完全匹配。如果找到,则停止搜索。 ***.com/a/5238430/6229548 【参考方案1】:

使用“=”修饰符可以定义 URI 的精确匹配 和位置。如果找到完全匹配,则搜索终止。

所以你可以使用这个配置:

location =/index.html 
      add_header "Cache-Control" "no-cache" ;

location / 
    rewrite ^(.*)  /index.html  break;



您可以在

中找到更多信息

different in break and last

Directives with the "=" prefix

【讨论】:

以上是关于Nginx - 如何在使用 try_files 时为 index.html 添加标头的主要内容,如果未能解决你的问题,请参考以下文章

nginx process = 404 如何在try_files中回退

如何缩短这个nginx try_files配置?

Nginx使用try_files返回500错误的解决方案

nginx;如果仅使用 try_files 存在文件,则返回响应代码

nginx 在 try_files 指令中有多个 PHP 文件

Nginx的try_files指令和命名location使用实例