Nginx条件重写

Nginx条件重写,nginx,https,dns,rewrite,Nginx,Https,Dns,Rewrite,我正在尝试基于http/https将domain1.com重定向到domain2.com 因此,对的请求将转到 请求转到 我当前的Nginx vhost文件设置为: server { listen 80; listen 443 ssl; ssl_certificate /etc/nginx/xxx.crt; ssl_certificate_key /etc/nginx/xxx.key; server_name *.domain1.com;

我正在尝试基于http/https将domain1.com重定向到domain2.com

  • 因此,对的请求将转到
  • 请求转到
我当前的Nginx vhost文件设置为:

server {
    listen 80;
    listen 443 ssl;

    ssl_certificate /etc/nginx/xxx.crt;
    ssl_certificate_key /etc/nginx/xxx.key;

    server_name *.domain1.com;
    if ( $scheme = "https" ) {
        rewrite ^ https://domain2.com$request_uri? permanent;
    }
    rewrite ^ http://domain2.com$request_uri? permanent;
}
然而,访问只是去。我似乎无法检测到https。我做错了什么?谢谢

编辑: 我已将我的vhost编辑到下面,但出现了相同的问题:

server {
    listen 80;
    listen 443 ssl;

    ssl_certificate /etc/nginx/xxx.crt;
    ssl_certificate_key /etc/nginx/xxx.key;

    server_name *.domain1.com domain1.com;
    return 301 $scheme://domain2.com$request_uri;
}

如果和重写

return 301 $scheme://domain2.com$request_uri;

顺便说一句,
server\u name*.domain1.com
不匹配
domain.com
@AlexeyTen,我想要
服务器名*.domain1.com domain1.com
以匹配所有www和domain1.com的变体是否正确?是。或者只是
.domain.com
。我尝试了上述方法,但同样的问题似乎也发生了,重定向到。您确定这不是浏览器缓存的重定向吗?您是否尝试过使用curl或wget?是的,我尝试过清除缓存,但同样的行为似乎也发生了。