Nginx:将自定义域http请求重定向到https

时间:2016-09-14 14:51:23

标签: http nginx

我们希望将something.custom.com个http请求重定向到https,而其他请求保持不变。试过类似下面的东西,但它没有工作:

server {
  listen 80 default_server;
  listen [::]:80 default_server ipv6only=on;

  server_name _;

  if ($host ~ ^(.*?)\.custom\.com) {
    return 301 https://$host$request_uri;
  }

  root /www/example/public;
}

server {
  listen 443 default_server ssl;
  listen [::]:443 default_server ipv6only=on ssl;

  server_name _;

  root /www/example/public;
}

我的设置有问题吗?

1 个答案:

答案 0 :(得分:1)

如评论中所述,以下配置应该有效:

server {
    listen 80;
    listen [::]:80 ipv6only=on;

    server_name something.custom.com;
    return 301 https://something.custom.com$request_uri;
}

server {
    listen 80 default_server;
    server_name _;

    #Rest of your config here
}

server {
    listen 443 default_server ssl;
    listen [::]:443 default_server ipv6only=on ssl;

    server_name _;

    root /www/example/public;
}