Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Парсинг HTTP заголовков
 
 автор: sirop   (26.09.2006 в 16:02)   письмо автору
 
 

Можно ли как-то на пхп определить запрашиваемый протокол вэб-сайта?
Например, если запрашивается сайт по 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:// в урле?

   
 
 автор: kasmanaft   (26.09.2006 в 16:07)   письмо автору
 
   для: sirop   (26.09.2006 в 16:02)
 

Все очень просто делается: вводим в адр. строке php.net/ru/parse_url и читаем :)

echo $url['scheme']; 

   
 
 автор: sirop   (26.09.2006 в 16:15)   письмо автору
 
   для: kasmanaft   (26.09.2006 в 16:07)
 

Получилось. Спасибо. За ссылку тоже спасибо - узнал интересные и нужные, как раз сейчас, вещи

   
 
 автор: ec_stasis   (26.09.2006 в 16:17)   письмо автору
 
   для: sirop   (26.09.2006 в 16:02)
 

Еще можно посмотреть, что в
$_SERVER['SERVER_PROTOCOL']

   
 
 автор: sirop   (26.09.2006 в 16:58)   письмо автору
 
   для: 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 в 17:20)   письмо автору
 
   для: sirop   (26.09.2006 в 16:02)
 

Столкнулся ещё с одной проблемой:
если перед echo $url['scheme']; предопределить $url вручную, то работает, а если делать проверку запрошенного протокола урл на самом хостинге?
$_SERVER['SERVER_NAME'] даёт только домен,
а сам протокол ( http или https) можно ли как-то получить из запроса?

   
 
 автор: sirop   (26.09.2006 в 21:15)   письмо автору
 
   для: sirop   (26.09.2006 в 16:02)
 

Может это как-то через сокеты решается?

   
 
 автор: sirop   (26.09.2006 в 22:15)   письмо автору
 
   для: sirop   (26.09.2006 в 21:15)
 

Люди, помогите! Очень нужно. Если это вообще возможно.
Есть сайт, на него куплен сертификат для SSL. Нужно, чтобы если пользователь запрашивает http://my_domen.ru открывался один вариант сайта, а если пользователь введёт адрес начинающийся с https (https://my_domen.ru), то ему подсовывалась другая версия сайта.
Как можно узнать вот тот префикс http или https ?

   
 
 автор: sirop   (26.09.2006 в 23:54)   письмо автору
 
   для: sirop   (26.09.2006 в 16:02)
 

Сделал проверку по номеру порта:
<?php
if($_SERVER["SERVER_PORT"] == 443) echo 'Протокол https';
else echo 
'Протокол http';
?>


Кажется показывает протокол верно, только я не уверен, что это оптимальный вариант.

Может кто предложит что-то?

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования