[Apache] Redirection SSL avec exception
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