Ανακατεύθυνση από HTTP σε HTTPS για NGINX

Τον τελευταίο καιρό οι περισσότεροι από εμάς γυρίζουμε τις σελίδες μας από απλό HTTP σε HTTPS.

Στην αλλαγή αυτή έχει παίξει καθοριστικό ρόλο ότι όλοι οι σύγχρονοι browsers, αρχίζουν να χαρακτηρίζουν τις σελίδες HTTP ως unsecure.

Ακόμα ένας καθοριστικός παράγοντας είναι ότι η google ανεβάζει ευκολότερα στις αναζητήσεις σελίδες που λειτουργούν αποκλειστικά σε HTTPS.

Για να γίνει ανακατεύθυνση στον NGINX, θα πρέπει να αλλάξουμε τις ρυθμίσεις στο αρχείο VHOST που αφορά την σελίδα μας.

Ανακατεύθυνση σε HTTPS χωρίς WWW

Συμπληρώνουμε το αρχείο του vhost μας με τα παρακάτω

server {  
  listen [::]:80;
  listen 80

  server_name yourdomain.com www.yourdomain.com;

  # redirect http to https non-www
  return 301 https://yourdomain.com$request_uri;
}

server {  
  listen [::]:443 ssl http2;
  listen 443 ssl http2;

  server_name www.yourdomain.com;

  # SSL code

  # redirect https non-www to https www
  return 301 https://yourdomain.com$request_uri;
}

server {

listen [::]:443 ssl http2;  
listen 443 ssl http2;

  server_name yourdomain.com;

  # SSL code
  # Other code
}  

Ανακατεύθυνση σε HTTPS με WWW

Συμπληρώνουμε το αρχείο του vhost μας με τα παρακάτω

server {  
  listen [::]:80;
  listen 80;

  server_name yourdomain.com www.yourdomain.com;

  # redirect http to https www
  return 301 https://www.yourdomain.com$request_uri;
}

server {  
  listen [::]:443 ssl http2;
  listen 443 ssl http2;

  server_name yourdomain.com;

  # SSL code

  # redirect https non-www to https www
  return 301 https://www.yourdomain.com$request_uri;
}

server {

  listen [::]:443 ssl http2;
  listen 443 ssl http2;

  server_name www.yourdomain.com;

  # SSL code
  # other code
} 

Έτσι αρκεί να επιλέξουμε έναν από τους παραπάνω τρόπους για να ανακατευθύνουμε εύκολα όλο το περιεχόμενο της σελίδας μας από HTTP σε HTTPS.

Φυσικά για να λειτουργήσουν όλα τα παραπάνω θα πρέπει να υπάρχει ενεργό πιστοποιητικό SSL στον web server σας.