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

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

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

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

Για να γίνει ανακατεύθυνση στον Apache, από απλό HTTP σε HTTPS θα κάνουμε χρήση του .htaccess αρχείου και του mod_rewrite.

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

Το αρχείο .htaccess μας θα πρέπει να περιέχει τα παρακάτω

RewriteEngine On  
# redirect http to https
RewriteCond %{HTTPS} off  
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]  

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

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

RewriteEngine On  
# redirect all www to https non-www
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]  
RewriteRule ^(.*)$ https://%1/$1 [L,R=301]  
# redirect http non-www to https non-www
RewriteCond %{HTTPS} off  
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]  

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

Τοποθετούμε το παρακάτω στο αρχείο .htaccess μας

RewriteEngine On  
# redirect all non-www to https www
RewriteCond %{HTTP_HOST} !^www\.(.*)$ [NC]  
RewriteRule ^(.*)$ https://www.%1/$1 [L,R=301]  
# redirect http www to https www
RewriteCond %{HTTPS} off  
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]  

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

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