温馨提示×

linux nginx如何做重定向

小樊
39
2026-10-29 03:17:12
栏目: 智能运维

在 Linux 下使用 Nginx 做重定向,常见方式主要有以下几种,按使用场景说明:


一、使用 return 做重定向(推荐)

1. 临时重定向(302)

server {
    listen 80;
    server_name old.example.com;

    location / {
        return 302 https://new.example.com$request_uri;
    }
}

2. 永久重定向(301,SEO 友好)

return 301 https://new.example.com$request_uri;

✅ 优点:简单、高效、官方推荐


二、使用 rewrite 做重定向

1. 域名重定向(301)

server {
    listen 80;
    server_name old.example.com;

    rewrite ^(.*)$ https://new.example.com$1 permanent;
}

2. 带条件的重定向

if ($host = old.example.com) {
    return 301 https://new.example.com$request_uri;
}

⚠️ 注意:if 在 Nginx 中容易出错,能用 server 或 return 就别用 if


三、HTTP → HTTPS 重定向(非常常见)

server {
    listen 80;
    server_name example.com www.example.com;

    return 301 https://$host$request_uri;
}

四、WWW 与非 WWW 互转

非 www → www

server {
    listen 80;
    server_name example.com;
    return 301 https://www.example.com$request_uri;
}

www → 非 www

server {
    listen 80;
    server_name www.example.com;
    return 301 https://example.com$request_uri;
}

五、目录或路径重定向

旧路径 → 新路径

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

带参数保留

return 301 https://example.com/new$request_uri;

六、修改后必须执行的操作

# 检查配置
nginx -t

# 重新加载
systemctl reload nginx
# 或
nginx -s reload

七、301 vs 302 怎么选?

类型 用途
301 永久迁移、SEO
302 临时跳转、测试

如果你有具体场景(比如:旧域名转新域名、子目录跳转、带参数、Docker 环境),可以直接告诉我,我给你写完整配置。

0 踩