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