在搭建网站时,我们经常会遇到需要将一个域名跳转到另一个域名的情况,比如把 www.example.com 自动跳转到 example.com,或者将 HTTP 请求跳转到 HTTPS。这时,Nginx 虚拟主机重定向就派上用场了。
本文将手把手教你如何在 Nginx 中配置虚拟主机实现重定向,即使你是完全的新手,也能轻松上手!
Nginx 的“虚拟主机”(也叫 server block)允许你在同一台服务器上托管多个网站。每个虚拟主机可以监听不同的域名或端口,并独立处理请求。通过配置虚拟主机,我们可以灵活地控制不同域名的行为,包括重定向。
www 域名跳转到非 www 域名(或反之)
确保你已经:
nginx -v 验证)通常,站点配置文件位于 /etc/nginx/sites-available/ 目录下。你可以创建一个新配置文件,例如 example.com:
sudo nano /etc/nginx/sites-available/example.com
下面是一个典型的 HTTP 到 HTTPS + www 到非 www 的重定向配置示例:
# 将 http://example.com 和 http://www.example.com 重定向到 https://example.comserver { listen 80; server_name example.com www.example.com; return 301 https://example.com$request_uri;}# 处理 www 到非 www 的 HTTPS 重定向server { listen 443 ssl; server_name www.example.com; ssl_certificate /path/to/fullchain.pem; ssl_certificate_key /path/to/privkey.pem; return 301 https://example.com$request_uri;}# 主站配置server { listen 443 ssl; server_name example.com; ssl_certificate /path/to/fullchain.pem; ssl_certificate_key /path/to/privkey.pem; root /var/www/example.com; index index.html; location / { try_files $uri $uri/ =404; }} 说明:
return 301 表示永久重定向(SEO 友好)$request_uri 保留原始请求的路径和参数创建软链接以启用站点:
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
测试 Nginx 配置是否正确:
sudo nginx -t
如果显示 “syntax is ok”,则重新加载 Nginx:
sudo systemctl reload nginx
打开浏览器,访问 http://www.example.com,应该会自动跳转到 https://example.com。你也可以使用命令行工具测试:
curl -I http://www.example.com
如果看到响应头中包含 Location: https://example.com/ 和状态码 301,说明配置成功!
301 重定向有利于 SEO,告诉搜索引擎这是永久变更通过以上步骤,你已经掌握了 Nginx 虚拟主机重定向的核心技巧。无论是做 域名重定向、HTTPS 强制跳转,还是网站迁移,都能轻松应对。希望这篇教程能帮助你在 Web服务器配置 的道路上更进一步!
如果你还有疑问,欢迎在评论区留言交流!
本文由主机测评网于2025-11-25发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://vpshk.cn/202511552.html