简介:多个域名向主域名自动跳转的Nginx配置
多个域名向主域名自动跳转的Nginx配置
在互联网中,域名是网站的入口点。当用户访问一个域名时,他们的浏览器会尝试找到与该域名关联的服务器,并从那里获取网页内容。有时候,您可能会有多个域名指向同一个服务器,或者想要在特定的条件下将用户重定向到另一个域名。在Nginx中,可以使用重定向配置来实现这个需求。
重定向是指将用户从一个URL(原始URL)自动重定向到另一个URL(目标URL)。在Nginx中,可以通过使用server块中的location块和return指令来实现重定向。
假设您有一个主域名example.com,并且希望将所有对old.com和new.com的请求重定向到example.com。以下是实现此目的的Nginx配置:
server {listen 80;server_name old.com new.com;return 301 $scheme://example.com$request_uri;}
在这个配置中:
listen 80;指令告诉Nginx监听80端口,这是常见的HTTP端口。server_name old.com new.com;指令定义了该server块将接受哪些域名。在这里,我们列出了old.com和new.com两个域名。当接收到对这两个域名的请求时,Nginx将匹配这个server块。return 301 $scheme://example.com$request_uri;指令将用户重定向到example.com。301是一个HTTP状态码,表示永久重定向。$scheme是一个变量,代表当前正在使用的协议(例如,http或https)。$request_uri是一个变量,代表客户端发送的请求的URI。server_name_in_redirect on;指令来确保重定向时使用正确的协议和主机名。例如:在这个例子中,如果用户正在通过HTTP而不是HTTPS访问
server {listen 80;listen [::]:80;server_name old.com new.com;server_name_in_redirect on;return 301 https://example.com$request_uri;}
old.com或new.com,那么Nginx将自动将他们重定向到相同的主机名和协议(即https)的example.com。