Визит на https URL и обратно на http

mitrich2008

Новичок
Визит на https URL и обратно на http

Суть в следующем. Имеется готовый сайт, все пути к картинкам, ссылкам и пр. относительные. Возникла необходимость пункт меню "profile" повесить на https. Меняем относительный url для ссылки profile на https://domain.com/profile.php
После этой операции ввиду относительных ссылок на сайте хождение по всему сайту становится по протоколу https.

Вопрос заключается в следующем: как люди делают переход на https и обратно для определенных страниц сайта. Спасибо.
 

Dovg

Продвинутый новичок
наверное подставляют протокол в ссылку. разве можно как то иначе?
 

mitrich2008

Новичок
Можно например через mod rewrite, однако результат довольно таки странный получается. К примеру в IE значок защищенного соединения появляется, а потом в процессе загрузки страницы исчезает. В ff пишет что мол не весь контент зашифрован.

Вот пример

RewriteEngine on

RewriteCond %{REQUEST_URI} !^/buycredits
RewriteCond %{HTTPS} =on
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [L]

RewriteCond %{REQUEST_URI} ^/buycredits
RewriteCond %{HTTPS} !=on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L]
 

флоппик

promotor fidei
Команда форума
Партнер клуба
В ff пишет что мол не весь контент зашифрован.
а картинки, скрипты, все ли вызывается через https ?
разве можно как то иначе?
ну, в этом конкретном случае можно сделать что то вроде
PHP:
<? if (($module=='profile')&&(!$_SERVER['HTTPS'])) { header('https://...'); }
 

mitrich2008

Новичок
картинки и скрипты имеют относительные ссылки.

Этот вариант подойдет для перехода на https, а вот обратно выбраться на http уже не получится.
 

флоппик

promotor fidei
Команда форума
Партнер клуба
а вот обратно выбраться на http уже не получится.
ну, господи:
PHP:
<? $https_modules = array('profile','buycredits'); 
if ($_SERVER['HTTPS']) {
if (!in_array($module, $https_modules)) { header ('http://...'); } 
} else { if (in_array($module, $https_modules)) { header ('https://...'); }  }
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
mitrich2008,
у тебя mod_rewrite делает редиректы - если http - на https, если https - на http :)
Но для страницы-то делается множество запросов, для картинок, js, css - отдельные!

флоппик, header('Location: ...');
 

mitrich2008

Новичок
Я сделал по совету флопика и в принципе работает нормально. Благодарю, что не начали тыкать на факи и на мануалы. Еще раз большое спасибо за помошь, флоппику отдельное спасибо )
 

флоппик

promotor fidei
Команда форума
Партнер клуба
Ну дык. Если видно, что человек пытается решить сам (а видно по коду модреврайта), то почему не помочь? )grigori, очепятался, писал прям в окошке сообщения сразу. Кстати, тоже показатель, что человек видимо сделал все же правильно,а главное, сам )
 
Сверху