|
|
|
| подскажите, как сделать чтобы скрипт всегда отображал правильный Хост в зависимости имеется с 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'] не всегда совпадает с УРЛ введённым в адресной строке браузера. Подскажите как решить эту проблему, нужно чтобы скрипт выводит точно также как было задано в адресной строке браузера, или это не реально сделать? | |
|
|
|
|
|
|
|
для: web777
(25.04.2009 в 06:30)
| | чего? я даже Вас не "совсем" понял
Вам $_SERVER["SERVER_NAME"] надо? хотя в HTTP_HOST вроде тоже самое... | |
|
|
|
|
|
|
|
для: ddhvvn
(25.04.2009 в 12:46)
| | дело в том что я заметил такую странную вещь, на одном хостинге почему-то HTTP_HOST показывает с www а на другом без. Толи в настройках гдето так принудительно указывается...
вообще мне это нужно для указания пути для JS примерно так
<script>var AJAXDIR = '{$ajaxdir}';</script>
и нужно чтобы AJAXDIR имел путь точно такой же как прописано в адресной строке браузера если там отсутствует www то его не должно быть в пути AJAXDIR, если есть, то должен присутствовать | |
|
|
|
|
|
|
|
для: web777
(25.04.2009 в 13:46)
| | Это как это так?
Если Вы набрали адрес с www. , то и в соответсвующей ячейке массива $_SERVER будет с www., если не набрали -то и не будет. | |
|
|
|
|
|
|
|
для: ddhvvn
(25.04.2009 в 14:20)
| | я тут по гуглил немного, но как и догадывался что эта директива заранее прописывается где то в настройках сервера, вот что выяснил:
переменная $_SERVER['SERVER_NAME'] выдает имя сервера, которое прописано в виртуальном хосте, в файле httpd.conf.
Значение директивы ServerName можно менять только на уровне конфигурационного файла httpd.conf и виртуальных хостов.
|
выходит что не всегда будет выводить $_SERVER['SERVER_NAME'] или $_SERVER['HTTP_HOST'] вместе с www. Всё зависит от того как будет прописано в httpd.conf | |
|
|
|
|
|
|
|
для: web777
(25.04.2009 в 13:46)
| | $_SERVER['HTTP_.HOST'] передаётся клиентом (это http-заголовок), а $_SERVER['SERVER_NAME'] - данные в httpd.conf. Если PHP не как модуль Apache, то этой переменной вообще быть не должно, насколько я понимаю. | |
|
|
|
|
|
|
|
для: web777
(25.04.2009 в 06:30)
| | У вас наверное домен третьего уровня, раз вы видите www. Могу ошибаться, но если создать поддомен "www", то обратившись к нему, в адресной строке всегда будут присутствовать три желанные буквы, а если наберут без "www", то будет просто http://site.ru. Это же обращение к двум разным директориям получается. | |
|
|
|
|
|
|
|
для: Рома
(25.04.2009 в 14:33)
| | спасибо всем, я посмотрю ещё раз. Конечно я не уверен полностью в своём вопросе, просто заметил такое на двух доменах, на 1-ом двухуровневом и 2-ом домене на третьем уровне.
либо тот код что выше приводил где то не так срабатывает на разных доменах | |
|
|
|