Проверить имя ресурса http запросе

123
MiladyX
На сайте с 23.09.2008
Offline
65
#11
AlikZP:
Да. Но если прийдет subdomain.site.com.ru то в переменной будет 'subdomain'

Хм...саб домены не должны прийти по идее в запрос...но такую вероятность тоже не мешало бы отсечь...

MiladyX добавил 29.04.2010 в 12:52

Может как то на уровне сервера настроить...Я заплачу, кто поможет. Сервер на Debian.

AlikZP
На сайте с 22.11.2009
Offline
107
#12

В $_SERVER['HTTP_HOST'] они попадают, проверено.

А вот каким образом отличить домен от саб домена - задача.

Может же быть site.com.ru, а может быть site.host.ru

Site на первом месте, но первый это домен, второй - саб домен.

Website CMS: быстрая, удобная, недорогая! Вечная лицензия за 45$ (/ru/forum/524503) Яся - быстрый поиск фото для товаров. OpenCart/ocStore. Дополнение. (/ru/forum/665287) Грамотная верстка ваших макетов (/ru/forum/comment/8853216)
T.R.O.N
На сайте с 18.05.2004
Offline
314
#13

MiladyX,

слушайте, а как у Вас настроен DNS?

От воздержания пока никто не умер. Хотя никто и не родился! Prototype.js был написан теми, кто не знает JavaScript, для тех, кто не знает JavaScript (Richard Cornford)
MiladyX
На сайте с 23.09.2008
Offline
65
#14

AlikZP, Отош. Хорошо, на крайняк если я дам список всех доменов в файле, которые могут прийти на сервер, как быть в таком случае. Файл типа:

site.com

site.com.ru

site.ua

Но блин, всё же PHP и .htaccess это доп. нагрузка на сервер...если бы решить проблему апатчем...

MiladyX добавил 29.04.2010 в 13:00

T.R.O.N:
MiladyX,
слушайте, а как у Вас настроен DNS?

На днс настроены все зоны доменов, которые отправляют всё на сервер с сайтом :)

AboutSEO
На сайте с 18.01.2007
Offline
154
#15

не понимаю нафига так мудрить и из'еживаться?

как я понял у вас свой сервер, значит доступ к конфигу апача есть,

ну так и воткните заглушку в конфиг перед всеми виртуальными записями указав ИП в сервере, а путь - к дефолтной паге апача.

T.R.O.N
На сайте с 18.05.2004
Offline
314
#16
MiladyX:
На днс настроены все зоны доменов, которые отправляют всё на сервер с сайтом

значит что угодно придти не может. Может только то, что нужно... А дальше, нужно реагировать только на зону, так?

Я работаю в основном на перле, посему лучше расскажу идею.

1. HTTP_HOST сплитом режим по site. получаем массив.

- если в массиве элемент 1 - это зона ru / com / com.ru и т.д.

- если 2 - первый это www или что-то, второй - зона =)

дальше делайте что хотите

2. в хттпацессе ставите заглушку, чтобы без site ничего не проходило

AlikZP
На сайте с 22.11.2009
Offline
107
#17
MiladyX:
AlikZP, Отош. Хорошо, на крайняк если я дам список всех доменов в файле, которые могут прийти на сервер, как быть в таком случае.

В настройках сервера не силен, PHP код подскажу

	// Разрешенные сайты

$sites = array('site.com', 'site.ru', 'site.com.ru');
// Получим url и разобъем его на части
$url = explode('.', $_SERVER['HTTP_HOST']);
// Если начинается с www - удалим эту часть
if ($url[0] == 'www') unset($url[0]);
// Соберем url обратно. Теперь он точно без www
$url = implode('.', $url);
// Если полученный после преобразований адрес есть в массиве
if (in_array($url, $sites)) {
echo 'Congratulations';
}

Скорее всего удалить www можно с помощью регулярки, но в ней я тоже школьнег :)

MiladyX
На сайте с 23.09.2008
Offline
65
#18
T.R.O.N:
значит что угодно придти не может. Может только то, что нужно... А дальше, нужно реагировать только на зону, так?

Ога, так то так, но всё что ниже понимается смутно.

Нужна или инструкция к действию конкретная, или рнр код, или настройки апатча.

Т.к. рекомендации не помогут, реализовать не смогу (.

AlikZP
На сайте с 22.11.2009
Offline
107
#19
MiladyX:
Нужна или инструкция к действию конкретная, или рнр код, или настройки апатча.
Т.к. рекомендации не помогут, реализовать не смогу (.

Ну я же дал PHP код.

echo 'Congratulations'; выполняется только если посетитель пришел по адресу, который есть в массиве.

Если хотите, чтоб было наоборот - сделайте так

if (!in_array($url, $sites)) { 

echo 'Доступ запрещен';
}
AboutSEO
На сайте с 18.01.2007
Offline
154
#20

не мудри...


################### ZAGLUSHKA ###################
<VirtualHost 78.46.41.29>
DocumentRoot "/usr/local/www/apache22/data"
ServerName 78.46.41.29
</VirtualHost>

123

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий