You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于Content-Type在Nginx中配置条件生效的自定义403错误页

实现方案

可以实现,通过Nginx的map指令配合动态变量即可按响应Content-Type动态决定是否启用自定义403错误页。

完整配置示例

1. http块新增map映射规则

http {
    # 保留你原有的所有http配置不变,新增以下内容
    map $sent_http_content_type $custom_403_page {
        default                 /forbidden.html;
        application/json        '';
        # 如有其他不需要自定义错误页的Content-Type,可按上述格式新增
    }

    server {
        # 保留你原有的所有server配置不变,修改error_page配置如下
        error_page 403 $custom_403_page;

        location = /forbidden.html {
            root   /path/to/root/;
            internal; # 新增该配置,禁止外部直接访问错误页路径
        }
    }
}

配置说明

  • $sent_http_content_type是Nginx内置变量,对应最终返回给客户端的响应Content-Type值,静态资源、反向代理上游返回的响应都可以正常识别
  • 当响应Content-Type匹配到application/json时,$custom_403_page变量赋值为空,此时error_page指令不会触发自定义页面跳转,Nginx直接返回默认403响应
  • internal配置可以限制错误页只能被Nginx内部重定向调用,避免用户直接访问该路径,安全性更高
  • 如果你原配置中的错误页文件名确实是forebidden.html(比标准拼写多一个e),保持配置和实际文件名一致即可。

内容的提问来源于stack exchange,提问作者danihh1

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 02:06:03