在Nginx中配置一个根域名重定向到子域名是一个常见的需求,特别是在你想要将访问者从一个主域名自动导向到一个特定的子域名时。以下是如何在Nginx配置文件中设置这种重定向的步骤:
首先,你需要编辑Nginx的配置文件。这通常位于 /etc/nginx/nginx.conf
或 /etc/nginx/sites-available/
目录下的某个文件中。如果你使用的是默认的配置文件,可能是 default
或者你网站的名字。
在适当的 server
块中,你可以添加一个新的 server
块来处理重定向。这里是一个基本的示例,它将所有从 example.com
来的请求重定向到 sub.example.com
:
server {
listen 80;
server_name example.com www.example.com;
location / {
return 301 http://sub.example.com$request_uri;
}
}
这个配置做了以下几件事情:
listen 80;
指定Nginx监听80端口,这是HTTP的标准端口。server_name example.com www.example.com;
定义这个 server
块处理来自 example.com
和 www.example.com
的请求。location / {
定义对于所有请求的处理规则。return 301 http://sub.example.com$request_uri;
发送一个HTTP 301永久重定向到子域名。$request_uri
是一个变量,代表原始请求的URI部分,确保整个路径和查询字符串被包含在重定向中。保存你的配置文件后,你应该测试配置文件是否有语法错误:
sudo nginx -t
如果显示 syntax is ok
和 test is successful
,那么你的配置文件就没有问题。
最后,应用更改需要重载Nginx:
sudo systemctl reload nginx
或者如果你不是使用systemd,可以使用:
sudo service nginx reload
这样,任何访问 example.com
或 www.example.com
的请求都会被重定向到 sub.example.com
,保持原始请求的路径和查询字符串不变。
领取专属 10元无门槛券
手把手带您无忧上云