Add new comment

Nginx : rediriger toutes vos url vers votre site HTTPS

Dans la continuité de l'article Nginx : passer votre site en HTTPS gratuitement avec Let’s Encrypt, je vous propose de rediriger toutes les url non sécurisées de votre site vers les pages HTTPS sécurisées.

En effet, il est préférable de n'avoir qu'elle seule version d'une page HTTP ou HTTPS.
Or si vos pages HTTP ont déjà été indexées par les moteurs de recherches, vous ne voulez pas que vos visiteurs arrivent sur une page qui n'existe plus.

La solution, c'est la redirection : une url HTTP sera automatiquement redirigée vers son url HTTPS correspondant, et cela sans intervention de l'utilisateur. 

 

Introduction

Je vous propose de rediriger :

Les adresses HTTP vers HTTPS

Et en même temps, les adresses sans www seront redirigées vers l'adresse avec le www

 

Modification du vhost nginx

Editez le vhost nginx de votre serveur

sudo nano /etc/nginx/conf.d/www.geek17.com.conf

Puis on ajoute les entrées serveurs suivantes en début de fichier.
Bien sûr, le nom du serveur et les urls doivent être adaptés à votre cas perso.

# redirection du trafic non sécurisé (port 80) vers https://www.
server {
    listen 80;
    server_name www.geek17.com geek17.com;
    return 301 https://www.geek17.com$request_uri;
}

# redirection du trafic sécurisé (port 443) mais sans le www vers https://www.
server {
    listen 0.0.0.0:443 ssl;
    server_name geek17.com;
    ssl on;
    ssl_certificate /etc/letsencrypt/live/www.geek17.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/www.geek17.com/privkey.pem;
    return 301 https://www.geek17.com$request_uri;
}

# c'est le point d'entrée de votre site. Tout le trafic est dirigé ici
server {
    listen 0.0.0.0:443 ssl http2;
    server_name www.geek17.com;

    root  /home/dev/www/www.geek17.com;
    index  index.php index.html index.htm;

    ssl on;
    ssl_certificate /etc/letsencrypt/live/www.geek17.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/www.geek17.com/privkey.pem;

    ...
}

Pensez à redémarrer nginx pour activer la modification

sudo service nginx restart

Puis vérifier que la redirection fonctionne en essayant d'accéder aux url HTTP et sans www.
Si tout est correct, vous constaterez que vous arrivez dans tous les cas sur la page https://www.

Tags: 
You must have Javascript enabled to use this form.