Nginx有条件的重写

时间:2014-10-16 04:05:44

标签: 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;
    if ( $scheme = "https" ) {
        rewrite ^ https://domain2.com$request_uri? permanent;
    }
    rewrite ^ http://domain2.com$request_uri? permanent;
}

然而访问https://domain1.com只是转到http://domain2.com。我似乎无法检测到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;
}

1 个答案:

答案 0 :(得分:2)

无需使用ifrewrite

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