web-dev-qa-db-ja.com

NGINXはhttpをhttpsにリダイレクトし、www以外をwwにリダイレクトします

SSLを使用してnginxサーバーをセットアップしています。

Sslのあるドメインはwww.mydomain.comです

次からのすべてのリクエストをリダイレクトしたい:

http://mydomain.comhttp://www.mydomain.com 、& https://mydomain.com to

https://www.mydomain.com

現在、次のサーバーブロックをセットアップしています。

server{
  listen 443 ssl;
  root /www/mydomain.com/;

  ssl_certificate /ssl/domain.crt;
  ssl_certificate /ssl/domain.key;
  .
  . 
  .
}

server{
  listen 80;
  server_name mydomain.com;
  return 301 https://www.mydomain.com$request_uri;
}

server{
  listen 80;
  server_name www.mydomain.com;
  return 301 https://www.mydomain.com$request_uri;
}

server{
  listen ssl 443;
  server_name mydomain.com;
  return 301 https://www.mydomain.com$request_uri;
}

これは現在動作しませんが、なぜ動作しないのかわかりません。 http-> httpsが機能するか、no-www to-> wwwが機能するかの組み合わせを取得できますが、上記のようにそれらを混合しても機能しません。

34
on3al

SSL証明書がwww以外のドメインをサポートしていない場合、SSLリダイレクトは機能しません。構成は正しいですが、リダイレクトサーバーを1つに減らすことができます

また、nginx Sudo service nginx reloadをリロードすることを忘れないでください

server {
  listen 80;
  listen 443 ssl;
  server_name example.com;
  # add ssl settings
  return 301 https://www.example.com$request_uri;
}
17

遅くなりましたが、このようにすることができます

server{
  listen 443 ssl;
  server_name www.mydomain.com;
  root /www/mydomain.com/;

  ssl    on;
  ssl_certificate /ssl/domain.crt;
  ssl_certificate /ssl/domain.key;
  .
  . 
  .
}

server{
  listen 80;
  server_name www.mydomain.com mydomain.com;
  return 301 https://$server_name$request_uri;
}

server{
  listen 443;
  server_name mydomain.com;
  return 301 https://www.$server_name$request_uri;
}

または、return 301 https://www.$server_name$request_uri;rewrite ^ http://www.$server_name$request_uri? permanent;に置き換えることができます。両方とも機能します。

また、SEOを改善するには、Google Webマスターでこれを設定する必要があります。

10
Suneel Kumar
#If you like to redirect all "http" to "https" then add the following:
server {
        listen 80;

        server_name yourdomain.com;
        server_name www.yourdomain.com;

 if ($scheme = "http")
        {
                rewrite ^(.*)$ https://yourdomain.com$1 permanent;
        }
}
0
RanchMobile