it-swarm.com.de

NGINX Leiten Sie http zu https und nicht zu www um

Ich richte einen Nginx-Server mit SSL ein.

Die Domain mit dem SSL ist www.mydomain.com

Ich möchte alle Anfragen umleiten von:

http://mydomain.com , http://www.mydomain.com , & https://mydomain.com to

https://www.mydomain.com

Ich habe derzeit die folgenden Server-Blöcke eingerichtet:

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;
}

Dies funktioniert derzeit nicht, aber ich verstehe nicht, warum nicht. Ich kann eine Kombination von http -> https oder no-www bis -> www zum Laufen bringen, aber das Mischen wie oben funktioniert nicht.

34
on3al

Die SSL-Umleitung funktioniert nicht, wenn Ihr SSL-Zertifikat die Nicht-WWW-Domäne nicht unterstützt. Die Konfiguration ist korrekt, kann jedoch auf nur einen Umleitungsserver reduziert werden

Vergiss auch nicht, nginx neu zu laden 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

Ich bin spät dran, aber das kannst du machen

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;
}

Oder Sie können return 301 https://www.$server_name$request_uri; Durch rewrite ^ http://www.$server_name$request_uri? permanent; Ersetzen, beide funktionieren.

Sie müssen dies auch in Google Webmaster für eine bessere SEO einstellen.

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