|
|
|
| Можно ли как-то на пхп определить запрашиваемый протокол вэб-сайта?
Например, если запрашивается сайт по SSL (https://domen.ru), то открывается одна версия, а если запрашивать по не шифрованному (http://domen.ru), то подсовывать другую версию
Вот здесь http://softtime.ru/forum/read.php?id_forum=1&id_theme=25139&page=1 нашел такое решение
<?
$url = parse_url("http://www.yandex.ru/yandsearch?text=AQ-1F3P-T&stype=www");
echo $url['query'];
?>
|
Если echo $url['query']; заменить на echo $url['host'];, получим www.yandex.ru
А можно ли как-то подобным образом узнать http:// или httpS:// в урле? | |
|
|
|
|
|
|
|
для: sirop
(26.09.2006 в 16:02)
| | Все очень просто делается: вводим в адр. строке php.net/ru/parse_url и читаем :)
| |
|
|
|
|
|
|
|
для: kasmanaft
(26.09.2006 в 16:07)
| | Получилось. Спасибо. За ссылку тоже спасибо - узнал интересные и нужные, как раз сейчас, вещи | |
|
|
|
|
|
|
|
для: sirop
(26.09.2006 в 16:02)
| | Еще можно посмотреть, что в
$_SERVER['SERVER_PROTOCOL'] | |
|
|
|
|
|
|
|
для: ec_stasis
(26.09.2006 в 16:17)
| | А что предпочтительнее использовать, чтобы работала корректнее и быстрее?
P.S.: только что испытал на хостинге... Залил файл test.php (<?=phpinfo(); ?>) и вызвал его так: http:/my_domen.ru
$_SERVER['SERVER_PROTOCOL'] - HTTP/1.1
Если же этот же файл открыть по адресу httpS://my_domen.ru , то $_SERVER['SERVER_PROTOCOL'] всё-равно HTTP/1.1 | |
|
|
|
|
|
|
|
для: sirop
(26.09.2006 в 16:02)
| | Столкнулся ещё с одной проблемой:
если перед echo $url['scheme']; предопределить $url вручную, то работает, а если делать проверку запрошенного протокола урл на самом хостинге?
$_SERVER['SERVER_NAME'] даёт только домен,
а сам протокол ( http или https) можно ли как-то получить из запроса? | |
|
|
|
|
|
|
|
для: sirop
(26.09.2006 в 16:02)
| | Может это как-то через сокеты решается? | |
|
|
|
|
|
|
|
для: sirop
(26.09.2006 в 21:15)
| | Люди, помогите! Очень нужно. Если это вообще возможно.
Есть сайт, на него куплен сертификат для SSL. Нужно, чтобы если пользователь запрашивает http://my_domen.ru открывался один вариант сайта, а если пользователь введёт адрес начинающийся с https (https://my_domen.ru), то ему подсовывалась другая версия сайта.
Как можно узнать вот тот префикс http или https ? | |
|
|
|
|
|
|
|
для: sirop
(26.09.2006 в 16:02)
| | Сделал проверку по номеру порта:
<?php
if($_SERVER["SERVER_PORT"] == 443) echo 'Протокол https';
else echo 'Протокол http';
?>
|
Кажется показывает протокол верно, только я не уверен, что это оптимальный вариант.
Может кто предложит что-то? | |
|
|
|