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

Форум PHP

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

 

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

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

тема: определить УРЛ точно также как было введено в браузере
 
 автор: web777   (25.04.2009 в 06:30)   письмо автору
 
 

подскажите, как сделать чтобы скрипт всегда отображал правильный Хост в зависимости имеется с www или без. Например если зайти на сайт таким образом

http://www.site.ru
то скрипт должен вывести точно такой же УРЛ в месте с www, в случаи если зайти так
http://site.ru
то скрипт должен вывести без www

я попытался сделать что-то подобное, вот ниже код


 if(substr_count(strtolower($_SERVER['HTTP_HOST']), 'www.') == 0) {
   $dir = str_replace('www.','',$siteurl);
 }else{
   $dir = $siteurl;
 }


но почему то не срабатывает, когда нахожусь на странице http://www.site.ru то скрипт выводит как http://site.ru тоесть без www. Как я понял не на всех серверах директива $_SERVER['HTTP_HOST'] не всегда совпадает с УРЛ введённым в адресной строке браузера. Подскажите как решить эту проблему, нужно чтобы скрипт выводит точно также как было задано в адресной строке браузера, или это не реально сделать?

  Ответить  
 
 автор: ddhvvn   (25.04.2009 в 12:46)   письмо автору
 
   для: web777   (25.04.2009 в 06:30)
 

чего? я даже Вас не "совсем" понял
Вам $_SERVER["SERVER_NAME"] надо? хотя в HTTP_HOST вроде тоже самое...

  Ответить  
 
 автор: web777   (25.04.2009 в 13:46)   письмо автору
 
   для: ddhvvn   (25.04.2009 в 12:46)
 

дело в том что я заметил такую странную вещь, на одном хостинге почему-то HTTP_HOST показывает с www а на другом без. Толи в настройках гдето так принудительно указывается...

вообще мне это нужно для указания пути для JS примерно так
<script>var AJAXDIR = '{$ajaxdir}';</script>
и нужно чтобы AJAXDIR имел путь точно такой же как прописано в адресной строке браузера если там отсутствует www то его не должно быть в пути AJAXDIR, если есть, то должен присутствовать

  Ответить  
 
 автор: ddhvvn   (25.04.2009 в 14:20)   письмо автору
 
   для: web777   (25.04.2009 в 13:46)
 

Это как это так?
Если Вы набрали адрес с www. , то и в соответсвующей ячейке массива $_SERVER будет с www., если не набрали -то и не будет.

  Ответить  
 
 автор: web777   (25.04.2009 в 14:43)   письмо автору
 
   для: ddhvvn   (25.04.2009 в 14:20)
 

я тут по гуглил немного, но как и догадывался что эта директива заранее прописывается где то в настройках сервера, вот что выяснил:


переменная $_SERVER['SERVER_NAME'] выдает имя сервера, которое прописано в виртуальном хосте, в файле httpd.conf. 

Значение директивы ServerName можно менять только на уровне конфигурационного файла httpd.conf и виртуальных хостов.


выходит что не всегда будет выводить $_SERVER['SERVER_NAME'] или $_SERVER['HTTP_HOST'] вместе с www. Всё зависит от того как будет прописано в httpd.conf

  Ответить  
 
 автор: Лерк   (25.04.2009 в 14:36)   письмо автору
 
   для: web777   (25.04.2009 в 13:46)
 

$_SERVER['HTTP_.HOST'] передаётся клиентом (это http-заголовок), а $_SERVER['SERVER_NAME'] - данные в httpd.conf. Если PHP не как модуль Apache, то этой переменной вообще быть не должно, насколько я понимаю.

  Ответить  
 
 автор: Рома   (25.04.2009 в 14:33)   письмо автору
 
   для: web777   (25.04.2009 в 06:30)
 

У вас наверное домен третьего уровня, раз вы видите www. Могу ошибаться, но если создать поддомен "www", то обратившись к нему, в адресной строке всегда будут присутствовать три желанные буквы, а если наберут без "www", то будет просто http://site.ru. Это же обращение к двум разным директориям получается.

  Ответить  
 
 автор: web777   (25.04.2009 в 14:50)   письмо автору
 
   для: Рома   (25.04.2009 в 14:33)
 

спасибо всем, я посмотрю ещё раз. Конечно я не уверен полностью в своём вопросе, просто заметил такое на двух доменах, на 1-ом двухуровневом и 2-ом домене на третьем уровне.

либо тот код что выше приводил где то не так срабатывает на разных доменах

  Ответить  
Rambler's Top100
вверх

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