absolute_redirect

The `absolute_redirect` 指令控制 NGINX 在重定向请求时是否使用绝对 URIs。 — NGINX HTTP Core

absolute_redirect
httpserverlocation
语法absolute_redirect on | off;
默认值off
上下文http, server, location
模块NGINX HTTP Core
参数flag

说明

`absolute_redirect` 指令在 NGINX 中指定是否在重定向时使用绝对 URI。默认情况下,NGINX 生成使用相对 URI 的重定向,这可能会在需要包含协议和主机名的完整 URL 的应用中导致不一致。当启用时,NGINX 会构造包含完整 URL 的重定向响应,包括协议(http 或 https)和主机信息。 该指令接受一个标志参数,可为 `on` 或 `off`,其中 `on` 表示在重定向响应中应使用绝对 URI,`off` 表示不使用。该设置在将 NGINX 部署在其他代理后面或处理复杂路由场景时特别有用,此时客户端需要被明确告知确切的目标 URI 以确保正常工作。 该指令可以在配置文件的 http、server 或 location 等段中定义,从而允许在应用的不同部分对重定向行为进行细粒度控制。配置错误可能导致链接断开或 Web 应用的重定向出现意外行为。

配置示例

server {
    listen 80;
    server_name example.com;

    absolute_redirect on;

    location /old-path/ {
        return 301 /new-path/;
    }
}

确保在正确的上下文(http、server 或 location)中设置该指令,以避免意外结果。

如果配置不当,使用 absolute_redirect on 可能会暴露内部服务器结构,因此请检查你的 URI 模式。