2010-11-01 3 views
1

J'essaie d'obtenir une page de connexion pour rediriger vers https et toutes les autres pages revenir à http standard. Lorsque j'ai/login comme adresse, il apparaît comme /index.php?page=login et n'est pas affiché sur une page sécurisée.comment dans htaccess puis-je rediriger l'utilisateur vers https à partir de http et à nouveau

Le code htaccess en question est ci-dessous:

RewriteCond %{SERVER_PORT} 80 
RewriteCond %{REQUEST_URI} ^/login$ 
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,QSA,L] 

RewriteCond %{REQUEST_URI} !^/login$ 
RewriteCond %{SERVER_PORT} 443 
RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [R=301,QSA,L] 

RewriteRule ^([a-zA-Z0-9_\-\(\)]+)[/]?$ /index.php?page=$1 

Répondre

3

Il est probablement préférable de le faire au niveau de l'application, qui est, envoyer le lien « login » comme un lien HTTPS directement.

Le problème avec les redirections de HTTP vers HTTPS est que le client fait d'abord la demande sur HTTP simple. Dans le cas où il ne va que sur la page initiale HTTPS, ce n'est pas nécessairement un problème, mais si vous envoyez les informations d'identification dans une requête HTTP redirigée de manière transparente vers une page HTTPS, elles auront été divulguées.

Questions connexes