• Wenn man nicht möchte, das im Domainnamen das www auftaucht, gibt es im Netz so einige Vorschläge. Dort taucht auch immer das hier auf.

     server {
           listen 80;
     
           server_name www.mydomain.io mydomain.io;
     
           if ($host = 'www.mydomain.io' ) {
              rewrite  ^/(.*)$  http://mydomain.io/$1  permanent;
           }
    

    Eine Diskussion auf stackoverflow Doch laut Nginx ist "If is evil" Der Tipp ist das man immer einen Serverblock erstellt.

    server {
           listen 80;
           server_name www.mydomain.io 
             }
    
    server {
               listen 80;
               server_name mydomain.io 
               }
    

    usw. Also braucht man vier Serverblöcke

    www soll immer entfernt werden und ich möchte eine permanente Umleitung auf https

    Ergebnis

    ### FORUM
    
    ### redirect http requests to https Forum
    server {
        listen               80;
        listen               [::]:80;
        server_name          radforum-duesseldorf.de;
        return 301 https://$server_name$request_uri;
    }
    
    server {
        listen               80;
        listen               [::]:80;
        server_name          www.radforum-duesseldorf.de;
        return 301 https://$server_name$request_uri;
    }
    
    ### https server Forum
    server {
        listen               443 ssl http2;
        listen               [::]:443 ssl http2;
        server_name          www.radforum-duesseldorf.de;
        return 301 https://$server_name$request_uri;
    }
        
    ### https server Forum
    server {
        listen               443 ssl http2;
        listen               [::]:443 ssl http2;
        server_name          radforum-duesseldorf.de;
    [....gekürzt....]
             }
    
    1. Block
      Leitet von radforum-duesseldorf.de auf https://radforum-duesseldorf.de

    2. Block
      Leitet von www.radforum-duesseldorf.de auf https://radforum-duesseldorf.de

    3. Block
      Leitet von http://www.radforum-duesseldorf.de auf https://radforum-duesseldorf.de

    4. Block
      Das ist dann die richtige Adresse https://radforum-duesseldorf.de

    Bei einer Subdomain wie z.B. forum.frank-mankel.de gibt es dann nur zwei Blöcke

    Ich hoffe das ist so verständlich. Sollte das eleganter gehen, bitte ich um einen netten Kommentar 😉


  • Es geht noch eleganter. Für eine Domain wie frank-mankel.de z.B. so. Muss das mal hier parken, damit ich nicht immer wieder danach suchen muss.

    server {
        server_name www.example.com example.com;
        return 301 https://example.com$request_uri;
    }
    
    server {
        listen 443 ssl;
        ssl_certificate /path/to/server.cert;
        ssl_certificate_key /path/to/server.key;
        server_name www.example.com;
        return 301 https://example.com$request_uri;
    }
    
    server {
        listen 443 ssl;
        ssl_certificate /path/to/server.cert;
        ssl_certificate_key /path/to/server.key;
        server_name example.com;
    
        <locations for processing requests>
    }
    

    Quelle: https://serverfault.com/questions/258378/remove-www-and-redirect-to-https-with-nginx