Как в htaccess я могу перенаправить пользователя на https с http и обратно

Я пытаюсь получить страницу входа для перенаправления на https, а все остальные страницы возвращаются к стандартному http. Когда у меня есть /login в качестве адреса, он отображается как /index.php?page=login и не отображается на защищенной странице.

Ниже приведен код htaccess:

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

Ответы

Ответ 1

Вероятно, лучше сделать это на уровне приложения, то есть напрямую отправить ссылку "Войти" в качестве HTTPS-ссылки.

Проблема с перенаправлением с HTTP на HTTPS заключается в том, что клиент сначала делает запрос по простому HTTP. В случае, когда он переходит только на начальную страницу HTTPS, это не обязательно проблема, но если вы отправляете учетные данные в HTTP-запросе, который прозрачно перенаправляется на страницу HTTPS, они все равно будут пропущены.