Перенаправить все веб-страницы на HTTPS после входа пользователя? - PullRequest
1 голос
/ 14 января 2012

Я создаю смешанный веб-сайт https / http, используя PHP. Когда пользователь входит в систему (через https), я устанавливаю безопасный cookie с именем пользователя и сессией. После входа в систему (то есть после того, как файл cookie настроен), я хочу перенаправить весь трафик на https, поскольку на каждой странице после входа в систему присутствует специфическое для пользователя содержимое. Первоначально у меня был настроен веб-сайт для использования только https, но после поиска Немного кажется, что лучше использовать SSL только тогда, когда это необходимо (поэтому, когда пользователи не вошли в систему, будет использоваться http). Могу ли я добиться этого, используя PHP / javascript или добавив некоторую команду относительно файлов cookie в мой файл .htaccess? Заранее спасибо!

Ответы [ 3 ]

3 голосов
/ 14 января 2012

Предполагается, что вы настроили сеансы для работы только по протоколу HTTPS, в противном случае это всего лишь защита от притворства (используйте session.cookie_secure).

Вы также можете установить (http, а не https) cookie при входе в систему:

setcookie('wantshttps','true',0,'/');

А в .htaccess:

RewriteCond %{HTTP_COOKIE} wantshttps=true
RewriteCOnd %{HTTPS} !on
RewriteCOnd %{REQUEST_METHOD} !POST
RewriteRule (.*) https://%{HTTP_HOST}/$1 [L,QSA]

Так что не забудьте установить его в false или сбросить, если вы обнаружите, что cookie - «true», но не вошел в систему (истек сеанс и т. Д.).

1 голос
/ 14 января 2012

Что касается URL-адресов в HTML, относительные URL-адреса должны обрабатывать это, так как они используют протокол базового адреса. Если нужны ссылки на другие сайты, вы можете использовать URL-адреса без имени протокола и двоеточия, например, //www.example.com/foo, который будет интерпретироваться как http://www.example.com/foo или https://www.example.com/foo в зависимости от протокола на странице перехода.

0 голосов
/ 14 января 2012

посмотрите на php.net header() функция

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...