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

Другие вопросы по тегам