Plus d'informations : Linux Help : How to redirect the http to https except one page

Rappel

  • SSL sous Apache nécessite la présence du module ssl :
    a2emode ssl
  • La réécriture d’url nécessite le module rewrite
    a2enmode rewrite
  • Par défaut, le site Web en ssl n’est pas activé :
    a2ensite default-ssl

Suivi bien sûr de

systemctl restart apache2

Problématique

Je souhaite rediriger l’ensemble des pages de mon site Web sauf certaines de manière à pouvoir réaliser des travaux pratiques en http.

Mise en oeuvre du Lab

Dans /var/www/html, je crée un répertoire

  • exception contenant le fichier index.html avec le contenu suivant (/var/www/html/exception/index.html) :
<html>
<head>
        <title>Redirection vers http</title>
</head>
<body>
        Redirection vers https
</body>
</html>
  • un répertoire nommé "normal" avec le contenu suivant (/var/www/html/exception/index.html) :

 Redirection de http vers https

<html>
<head>
        <title>Redirection vers https</title>
</head>
<body>
        Redirection vers https
</body>
</html>

L’ensemble des pages http doit être redirigé vers https sauf l’url associée à exception donc http://localhost/exception

Nous mettons en place cette redirection en modifiant dans le fichier /etc/apache2/sites-available/000-default.conf :

<VirtualHost>
.../...
        RewriteEngine   On
        RewriteCond     %{THE_REQUEST} !/exception/ [NC]
        RewriteRule     ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</VirtualHost>

En oubliant pas de recharger Apache :

service apache2 restart

Redirection vers https vers http

La seule page à devoir être redirigée est exception donc https://localhost/exception

<VirtualHost>
.../...
        RewriteEngine   On
        RewriteCond     %{THE_REQUEST} /exception/ [NC]
        RewriteRule     ^ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</VirtualHost>

En oubliant pas de recharger Apache :

service apache2 restart

Accueil > Notes Techniques > Applications Web > [Apache] Redirection SSL avec exception