Как в 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, они все равно будут пропущены.