《nginx配置访问域名跳转》
当我们需要实现不同域名之间的跳转时,Nginx是一个非常高效且常用的解决方案。通过简单的配置,就能将用户对一个域名的访问请求重定向到另一个指定的域名。
一、基本思路与简单配置
最直接的方式是利用Nginx的rewrite模块。在Nginx的配置文件中,找到对应站点的server块。例如,如果我们要将www.old - domain.com跳转到www.new - domain.com,可以在server块内添加如下代码:
server {
listen 80;
server_name www.old-domain.com;</p>
<pre><code>location / {
rewrite ^/(.*)$ http://www.new-domain.com/$1 permanent;
}
}
这段代码中,listen 80表示监听80端口(即http默认端口),server_name指明了要处理的旧域名。location /匹配所有请求,在其中使用rewrite指令,^/(.*)$表示匹配所有url路径并捕获为$1,然后将其重写为新域名加上原来的路径,并且permanent表示301永久重定向。
二、使用return指令
除了rewrite,还可以使用return指令来实现更简洁的跳转。代码如下:
server {
listen 80;
server_name www.old-domain.com;</p>
<pre><code>location / {
return 301 http://www.new-domain.com$request_uri;
}
}
这里return 301直接返回301状态码和目标地址,$request_uri会自动带上原始请求的uri部分。
三、针对https的跳转
如果涉及到https,情况会稍微复杂一点。如果是从http跳转到https的新域名,可以这样配置:
server {
listen 80;
server_name www.old-domain.com;</p>
<pre><code>location / {
return 301 https://www.new-domain.com$request_uri;
}
}
server {
listen 443 ssl;
server_name www.old-domain.com;
ssl_certificate cert.pem; #证书路径
ssl_certificate_key cert.key; #私钥路径
location / {
return 301 https://www.new-domain.com$request_uri;
}
}
个server块处理http请求的跳转,第二个server块处理https请求的跳转,同时要注意ssl相关证书的配置。
以上就是Nginx配置访问域名跳转的几种常见方式,根据实际需求选择合适的方法进行配置即可。