在 Debian 上,nginx 做“重定向”通常分几种常见场景。下面按使用方式和常见场景给你说明(都基于 Debian 系,如 Debian 11/12)。
nginx 重定向主要用:
return 301(推荐,简单高效)rewrite(更灵活,但复杂)server {
listen 80;
server_name old.example.com;
return 301 https://new.example.com$request_uri;
}
✅ 访问 old.example.com/abc
➡ 跳转到 new.example.com/abc
server {
listen 80;
server_name example.com www.example.com;
return 301 https://$host$request_uri;
}
不带 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;
}
server {
listen 80;
server_name example.com;
rewrite ^/(.*)$ https://new.example.com/$1 permanent;
}
permanent = 301
redirect = 302
Debian 的 nginx 配置结构:
/etc/nginx/
├── nginx.conf
├── sites-available/
├── sites-enabled/
sudo nano /etc/nginx/sites-available/redirect.conf
写入上面的 server {} 配置
启用
sudo ln -s /etc/nginx/sites-available/redirect.conf /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
如果你用的是 Let’s Encrypt:
server {
listen 80;
server_name example.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
location / {
root /var/www/html;
index index.html;
}
}
return 301nginx -t
systemctl reload nginx
不是 restart 也行,但 reload 更安全
如果你能说清楚:
我可以直接给你可复制的 Debian 配置。