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

Форум PHP

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

 

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

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

тема: От чего зависит наличие www. в переменной $_SERVER['SERVER_NAME'] ?
 
 автор: tAleks   (09.02.2007 в 21:47)   письмо автору
 
 

На хостинге $_SERVER['SERVER_NAME'] выдает www.site.ru.

Я думаю (не знаю точно) что наличие www. зависит от настроек сервера.

Спросил хостера, можно ли сделать чтобы $_SERVER['SERVER_NAME'] выдавала имя без www.

На что он ответил (цитата):
Разработкой языка программирования PHP занимаемся не мы.

Я думаю что PHP тут не причем.

Хостер гонит, или он прав?

От чего зависит наличие www. в переменной $_SERVER['SERVER_NAME'] ?

   
 
 автор: retsoul   (09.02.2007 в 21:57)   письмо автору
 
   для: tAleks   (09.02.2007 в 21:47)
 

всё правильно
есть ещё $_SERVER["HTTP_HOST"], который будет выдавать имя домена без www.
на будущее - хочешь узнать переменные окружения на сервере - создай файлик с одной командой:

<?
phpinfo
();
?>

   
 
 автор: tAleks   (09.02.2007 в 22:17)   письмо автору
 
   для: retsoul   (09.02.2007 в 21:57)
 

Ну вообще-то $_SERVER["HTTP_HOST"] будет выдавать так, как написано в адресной строке...

   
 
 автор: retsoul   (09.02.2007 в 22:26)   письмо автору
 
   для: tAleks   (09.02.2007 в 22:17)
 

значит ошибся :)

   
 
 автор: cheops   (09.02.2007 в 22:20)   письмо автору
 
   для: tAleks   (09.02.2007 в 21:47)
 

Скорее всего выдаётся имя сервера, которое прописано в виртуальном хосте, т.е. если туда записано www.site.ru, будет выдаваться www.site.ru, если site.ru, то site.ru.

   
 
 автор: tAleks   (09.02.2007 в 22:26)   письмо автору
 
   для: cheops   (09.02.2007 в 22:20)
 

А хостр может исправить, сделать так, для моего сайта, чтобы $_SERVER["SERVER_NAME"], выдавала без www. ?

Ну, чисто практически это возможно?

   
 
 автор: cheops   (10.02.2007 в 03:17)   письмо автору
 
   для: tAleks   (09.02.2007 в 22:26)
 

Если захочет - может исправить - для этого нужно исправить ваш виртуальный хост и перегрузить сервер Apache.

   
 
 автор: tAleks   (10.02.2007 в 09:41)   письмо автору
 
   для: cheops   (10.02.2007 в 03:17)
 

Спасибо!

   
 
 автор: golovdinov   (10.02.2007 в 15:23)   письмо автору
 
   для: tAleks   (10.02.2007 в 09:41)
 

Если очень уж необходимо - удали в тексте www.


$host = $_SERVER['HTTP_HOST'];
$host = str_replace ("www.", "", $host);

   
 
 автор: tAleks   (12.02.2007 в 20:44)   письмо автору
 
   для: cheops   (10.02.2007 в 03:17)
 

На просьбу подправить httpd.conf поступил ответ:
А .htaccess не помогает?

Правда можно через .htaccess изменить SERVER_NAME?
Если да, то как это сделать?

   
 
 автор: cheops   (13.02.2007 в 13:19)   письмо автору
 
   для: tAleks   (12.02.2007 в 20:44)
 

Хм... значение директивы ServerName можно менять только на уровне конфигурационного файла httpd.conf и виртуальных хостов, в .htaccess изменить данную директиву нельзя. Даже директивой SetEnv из модуля mod_env для установки переменных окружения воспользоваться не удасться, так как директива опять же действует только на уровне конфигурационного файла httpd.conf и виртуальных хостов.

   
 
 автор: tAleks   (13.02.2007 в 15:59)   письмо автору
 
   для: cheops   (13.02.2007 в 13:19)
 

Спасибо!
Ща, я сумничаю... перед хостером.... ;)

Авось, мы с вами вдвоем и победим его.... ;)

   
 
 автор: JIEXA   (13.02.2007 в 22:09)   письмо автору
 
   для: cheops   (10.02.2007 в 03:17)
 

Вы имеете ввиду убрать
ServerAlias www.site.ru site.ru ? Ведь тогда сайт не будет доступен по адресу www.site.ru.
Или как-то по другому?

   
 
 автор: cheops   (14.02.2007 в 12:48)   письмо автору
 
   для: JIEXA   (13.02.2007 в 22:09)
 

Будет, в DNS стоят алиасы, только в виртуальном хосте прописать можно один из них, в данном случае прописан не тот, который нужен tAleks.

   
 
 автор: tAleks   (25.04.2007 в 18:49)   письмо автору
 
   для: cheops   (14.02.2007 в 12:48)
 

>Будет, в DNS стоят алиасы, только в виртуальном хосте прописать можно один из них, в данном случае прописан не тот, который нужен tAleks.

Ну тогда я совсем ничего не понимаю.

Если, как Вы говорите, моежт быть прописан только один из них, то почему на вашем хостинге $_SERVER['SERVER_NAME'] выдает значение и так и так. Т.е. моежт выдавать site.ru и www.site.ru, в зависимости от того как юзер написал адрес в строке бразуера.

Что тогда выдает $_SERVER['SERVER_NAME'], конкретно на вашем хостинге?

   
 
 автор: cheops   (26.04.2007 в 13:42)   письмо автору
 
   для: tAleks   (25.04.2007 в 18:49)
 

Хм... действительно, ошибся... вообще припоминаю на нашем старом хостинге также было - переменные $_SERVER['SERVER_NAME'] и $_SERVER['HTTP_HOST'] заполнялись из адресной строки, собственно это даже удобнее... разумеется следует предусмотреть обработку поступаемых данных, например, удалять каждый раз последовательность "www." из значения $_SERVER['SERVER_NAME']
<?php
  $_SERVER
['SERVER_NAME'] =str_replace("www."""$_SERVER['SERVER_NAME']);
?>

   
 
 автор: sms-send   (26.04.2007 в 13:55)   письмо автору
 
   для: cheops   (26.04.2007 в 13:42)
 

а если у меня домен "mywww.ru"
Лучше так:

<?
$_SERVER
['SERVER_NAME']=reg_replace('~^www\.~is','',$_SERVER['SERVER_NAME']);
?>

   
 
 автор: sms-send   (26.04.2007 в 13:56)   письмо автору
 
   для: cheops   (26.04.2007 в 13:42)
 

/**/

   
 
 автор: sms-send   (26.04.2007 в 13:56)   письмо автору
 
   для: cheops   (26.04.2007 в 13:42)
 

/*Не знал что в инет клубах ставят такие глючные компы :)*/

   
Rambler's Top100
вверх

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