Redirecionar HTTPS para HTTP, exceto para URLs específicos

2

Gostaríamos de redirecionar todo o tráfego HTTPS para HTTP, exceto para um URL específico que é / user / login

Até agora nós temos:

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

Mas está causando um loop de redirecionamento, quando redireciona de volta para HTTP

    
por Tom 15.09.2011 / 12:13

3 respostas

4

Eu acredito que isso deve dar certo:

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]

O texto acima fará o seguinte:

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
    
por 23.09.2011 / 21:20
5

Algo como isso deve funcionar:

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

Mas isso não faz muito sentido para mim. Seria melhor se você redirecionasse apenas solicitações para / user / login via SSL e deixasse tudo como está:

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

Você está procurando redirecionar quando o URI não combina com / user / login / ?? aqui está a resposta.

link

    
por 23.09.2011 / 20:17