Nginx 配置教程:仅重定向根路径(网站首页)
背景
在某些情况下,您可能希望将访问某个域名的根路径重定向到另一个网站,而保留该域名下的其他路径不变。本文将介绍如何在 Nginx 中实现这一功能。
目标
- 将访问
http://www.gzdxttj.xyz
和http://gzdxttj.xyz
的根路径重定向到http://200sm.com
。 - 保持访问
http://www.gzdxttj.xyz/zjyn/
和http://gzdxttj.xyz/zjyn/
等路径不变,正常处理这些请求。
步骤
1. 安装 Nginx
如果尚未安装 Nginx,请使用以下命令进行安装(以 Ubuntu 为例):
sudo apt update
sudo apt install nginx
2. 创建或编辑 Nginx 配置文件
Nginx 的配置文件通常位于 /etc/nginx/sites-available/
目录。您可以创建一个新的配置文件或编辑现有的配置文件。以下命令将打开一个新的配置文件:
sudo nano /etc/nginx/sites-available/gzdxttj
3. 添加服务器配置
在配置文件中,添加以下内容:
server {listen 80;listen 443 ssl http2;server_name www.gzdxttj.xyz gzdxttj.xyz;# 对于根路径的重定向location = / {return 301 http://200sm.com$request_uri; # 仅重定向根路径}# 对于其他路径(例如 /zjyn/),保持原样location / {try_files $uri $uri/ =404; # 尝试找到文件,如果不存在则返回 404}# SSL 证书的配置(如果需要的话)ssl_certificate /etc/letsencrypt/live/www.gzdxttj.xyz/fullchain.pem;ssl_certificate_key /etc/letsencrypt/live/www.gzdxttj.xyz/privkey.pem;
}
4. 配置说明
-
location = /
:- 这个配置只匹配根路径(
/
)。当请求访问http://www.gzdxttj.xyz/
或http://gzdxttj.xyz/
时,它会返回一个 301 永久重定向到http://200sm.com
。这确保了用户访问根路径时,会自动被引导到新网站。
- 这个配置只匹配根路径(
-
location /
:- 这个配置匹配所有其他路径,包括
/zjyn/
。对这些路径不会做任何重定向,Nginx 会尝试找到请求的文件或目录。如果文件不存在,它将返回 404 错误。这样,所有其他请求将正常被处理,不会干扰到用户的访问体验。
- 这个配置匹配所有其他路径,包括
-
SSL 配置:
- 确保 SSL 证书和密钥的路径是正确的。SSL 是确保网站安全和保护用户数据的重要部分。如果使用的是 Let’s Encrypt 或其他证书颁发机构,请确保相关文件的路径正确配置。
5. 创建符号链接(如果是新配置文件)
如果您创建了新的配置文件,需在 sites-enabled
目录中创建符号链接,以使 Nginx 能够识别该配置:
sudo ln -s /etc/nginx/sites-available/gzdxttj /etc/nginx/sites-enabled/
6. 测试 Nginx 配置
在重新加载 Nginx 之前,最好测试一下配置是否正确:
sudo nginx -t
如果配置正确,您会看到相应的成功信息。
7. 重新加载 Nginx
当配置无误后,可以通过以下命令重新加载 Nginx,以使设置生效:
sudo systemctl reload nginx
8. 验证结果
- 访问
http://www.gzdxttj.xyz/
和http://gzdxttj.xyz/
,您应该会被重定向到http://200sm.com
。 - 访问
http://www.gzdxttj.xyz/zjyn/
和http://gzdxttj.xyz/zjyn/
等路径时,应能正常访问而不会被重定向。
总结
通过以上步骤,您成功配置了 Nginx,以便只重定向根路径,同时保持其他路径不变。这种配置非常适用于需要将用户引导到新网站的情况,而不影响现有内容的访问。