Laisser un commentaire

Rediriger tout le trafic http vers https

Maintenant que Google prend en compte [en] dans son algorithme de classement le fait qu’un site soit en ssl ou non, beaucoup de webmasters voudront passer leurs sites en https.

Une fois le certificat ssl/tls acheté puis installé (ou pris via Let’s Encrypt), pour ne pas perdre son classement, il faut rediriger le trafic avec une redirection 301. Voir les recommandations de Google pour le passage à https.

Apache2

Cette redirection s’effectue très facilement avec Apache et le mod_alias. Vous trouverez souvent des exemples parlant du mod_rewrite, et bien que cela fonctionne, il est conseillé d’utiliser un simple redirect pour cet usage. L’avantage est double, c’est moins gourmand en ressources serveur et donc plus rapide pour les visiteurs, mais c’est aussi plus clair dans les fichiers de configuration.

Si vous êtes sur du mutualisé, il est surement disponible, si vous êtes sur votre propre serveur, il est également normalement activé par défaut. Dans le doute, vous pouvez le vérifier en ligne de commande avec un petit coup de apache2ctl -M et l’activer au besoin.

# Fichier virtualHost du site
<VirtualHost buzut.net:80>
    ServerName buzut.net
    ServerAdmin mon@email.net
    Redirect permanent / https://buzut.net/
</VirtualHost>

<VirtualHost buzut.net:443>
    Protocols h2 http/1.1
    ServerName buzut.net

    …
</VirtualHost>

Vous remarquez peut-être la ligne Protocols h2 http/1.1. Elle permet d’activer le support du HTTP2, la dernière version du protocole. N’hésitez pas à consulter mon article dédié à Apache2 pour plus d’infos sur les différents réglages et optimisations relatives à ce serveur.

L’exemple ci-dessus se place directement dans le fichier de VHost du site (ou dans votre fichier général si vous en utilisez un seul pour plusieurs site). Cependant, dans de nombreux cas, vous voudrez plutôt gérer via le .htaccess.

Cela vous permet de placer la logique de redirection dans le répertoire du site, directement avec le code de ce dernier. De nombreux hébergeurs n’offriront d’ailleurs que cette unique solution.

RewriteCond %{HTTPS} off
RewriteRule (.*) https://buzut.net/$1 [R=301,L]

Par ailleurs, l’avantage de cette méthode est que nous redirigeons ici directement sur la bonne url en HTTPS. Dans la méthode utilisée via le VHost, nous nous contentons de rediriger vers la racine du site en HTTPS.

NGINX

Le serveur russe possède ses propres directives. Rien de très compliqué non plus :

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

    server_name buzut.net;
    return 301 https://buzut.net$request_uri;
}

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

    …
}

Et voilà, vous êtes tout bon ! D’ailleurs, si vous souhaitez approfondir un peu la configuration de votre serveur pour en maximiser les performances, j’ai les articles qu’il vous faut, qu’il s’agisse d’Apache ou de NGINX.

Commentaires

Rejoignez la discussion !

Vous pouvez utiliser Markdown pour les liens [ancre de lien](url), la mise en *italique* et en **gras**. Enfin pour le code, vous pouvez utiliser la syntaxe `inline` et la syntaxe bloc

```
ceci est un bloc
de code
```