(не)?Путевые заметки промоутера - вопросы SEO, продвижения и оптимизации сайтов, поисковые системы и реклама в России и Украине

« Мета активизировалась | Главная | Новости на Meta.ua »

October 26, 2004

Как лучше анализировать серверные заголовки в PHP

До недавнего времени использовал функцию apache_request_headers() для того, чтобы проанализировать заголовки запроса сервера.
После того, как пара сайтов переехала на другие сервера, функция работать перестала. Причина оказалась в том, что PHP на новых серверах установлена как CGI-приложение, а не модуль Apache.

У меня кое-где на главных страницах стоит, вернее стоял, следующий код:
if (strstr($_SERVER['HTTP_USER_AGENT'], 'Googlebot') || /еще user-agents роботов/) {
$myheaders=apache_request_headers();
// дальше составляем и отправляем сообщение о приходе робота Х на сайт
}
При этом обычный пользователь с обычным браузером видел нужную страницу, а робот - пустую страницу с сообщением об ошибке "а нет такой функции!" Проблема обнаруживалась только после переиндексации, когда в выдаче вместо главной страницы появлялось нечто несуразное. Эдакий клоакинг наоборот.

Теперь во всех случаях, когда нужны серверные заголовки, анализирую переменные $_SERVER[HTTP_*], а про существование функции apache_request_headers() лучше забыть.

Отправлено Cherny в October 26, 2004 10:30 PM

Комментарии

Первый раз услышал о такой функции с хедерами... :) Повезло.
Но можно юзать еще проще - прямо $QUERY_STRING вместо $_SERVER['QUERY_STRING']

Отправлено euhenio в October 27, 2004 11:51 AM

>Но можно юзать еще проще - прямо $QUERY_STRING вместо $_SERVER['QUERY_STRING']
Так работает если параметр register_globals установлен в on, а он по умолчанию с версии 4.2.0 установлен в off:
http://php.net/manual/ru/language.variables.predefined.php

Отправлено Cherny в October 27, 2004 12:07 PM