Nginx将https:// www重定向到https://

时间:2015-12-05 17:16:16

标签: ubuntu redirect nginx https

感谢理查德的回答!

我刚刚在带有Nginx的Digitalocean Ubuntu rails服务器上设置了Comodo的SSL证书。

目前http:// www.mydomain和http:// mydomain 重定向到 https:// mydomain

我还希望https:// www.mydomain重定向到https:// mydomain

我是新手,这是当前的设置,我有2 / etc / nginx / sites-enabled / files(.com和.com.ssl文件):

.com文件

server {
        listen 80;
        server_name dspencer-webdesign.com;
        return 301 https://dspencer-webdesign.com$request_uri;
    }


server {
    listen 80;
    server_name dspencer-webdesign.com;


    passenger_enabled on;
    rails_env production;
    root /home/abfahren/david/current/public;

    error_page 500 502 503 504  /50x.html;
    location = /50.x.html {
        root html;
      }
    }

.com.ssl文件

server {
        server_name www.dspencer-webdesign.com;
        return 301 $scheme://dspencer-webdesign.com$request_uri;
    }
    server {
        listen 443 ssl;
        server_name dspencer-webdesign.com;


        ssl_certificate /etc/ssl/ssl-bundle.crt;
        ssl_certificate_key /etc/ssl/dspencer-webdesign.com.key;

        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;
        ssl_ciphers AES256+EECDH:AES256+EDH:!aNULL;


        passenger_enabled on;
        rails_env production;
        root /home/abfahren/david/current/public;

        error_page 500 502 503 504  /50x.html;
        location = /50.x.html {
        root html;
      }
    }

我不确定如何将正常运行的https:// www重定向到https://dspencer-webdesign.com

非常感谢任何帮助 干杯

1 个答案:

答案 0 :(得分:1)

您的配置有点令人困惑。您有三个非SSL server容器,其中两个容器具有相同的server_name。 #1重定向到SSL,#2从不使用,#3重定向到#1。

您的第4个server容器是您唯一的SSL server容器,这使其成为端口443的任何连接的默认服务器。

我没有对此进行测试,但如果您将其置于SSL服务器块的顶部附近,则应将https://www.d-w.c重定向到https://d-w.c

server {
  listen 443 ssl;
  server_name dspencer-webdesign.com;
  if ($server_name ~* \.dspencer-webdesign.com$) {
    return 301 $scheme://dspencer-webdesign.com$request_uri;
  }
  ...
}