1 votes

Rediriger HTTPS vers HTTP sauf pour une URL spécifique

Nous aimerions rediriger tout le trafic HTTPS vers HTTP sauf pour une URL spécifique qui est /user/login.

Jusqu'à présent, nous avons :

RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^user/login(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]

Mais cela provoque une boucle de redirection, quand il redirige vers HTTP

5voto

Vladimir Blaskov Points 6013

Quelque chose comme ceci devrait fonctionner :

RewriteEngine on
RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} !^/user/login
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R,L]

Mais cela n'a pas beaucoup de sens pour moi. Il serait préférable de rediriger uniquement les requêtes vers /user/login via SSL et de laisser tout le reste tel quel :

RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule /user/login(.*) https://%{HTTP_HOST}/user/login$1 [R,L]

3voto

Dave Points 1

Je pense que cela devrait faire l'affaire :

RewriteEngine On
RewriteBase /

# Turn SSL on for /user/login
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} ^/user/login
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

# Turn SSL off everything but /user/login
RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} !^/user/login
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [R=301,L]

Ce qui précède fera ce qui suit :

1. User types: https://yourdomain.com/user/login - no redirect
2. User types: http://yourdomain.com/user/login -> redirect to: https://yourdomain.com/user/login
3. User types: https://yourdomain.com/somerandomfile.php -> redirect to: http://yourdomain.com/somerandomfile.php
4. User types: http://yourdomain.com/somerandomfile.php - no redirect

-1voto

Dan Moulding Points 46866

Vous recherchez une redirection lorsque l'URI ne correspond pas à /user/login/ ?? voici la réponse.

https://stackoverflow.com/questions/7084048/apache-redirect-regexp-match-something-that-is-not-following-something/7084117#7084117

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X