2009-08-14 4 views
2

Я бы хотел показать свою страницу по-разному для посетителя, основываясь на том, пришли ли они из поисковой системы или нет. Думаю, я обнаруживаю рефералы поисковых систем? Я также хотел бы знать условия поиска, которые использовались для моего сайта.Является посетителем моего сайта, исходящим из поисковой системы? Каковы были их условия поиска?

Мое решение до сих пор это:

1) Фильтр по Referers запроса HTTP, которые содержат общий поиск адреса двигателя, т.е. http://www.google.com/search, http://www.bing.com/search или http://search.yahoo.com/search

2) Разбираем параметр строки запроса из референт для поисковых запросов, например «q = поиск + термины + для + мой + сайт + пойти + здесь»

Я считаю, что это не самое надежное решение, поскольку оно пропускает менее известные поисковые системы, и каждая поисковая система может иметь собственный параметр строки запроса для поисковых запросов. Например, параметр поискового запроса Google и Bing является «q», но Yahoo является «p», насколько я могу судить. А как насчет специальных операторов вроде +, - и т. Д.?

Есть ли более общий способ сделать это? Или есть библиотека, которая поможет мне обрабатывать больше поисковых систем? Я работаю с Java на Tomcat, но идеи с любого языка и настройки сервера приветствуются.

ответ

1

Ваш подход - это лучшее, что вы можете сделать. Я побежал подобный модуль на Drupal,

http://drupal.org/project/search_engine_referers

Если вы посмотрите на код, он делает именно то, что вы сказали. Я не думаю, что у них есть версия, поддерживающая Bing.com.

Учитывая, что доля поискового рынка идет, вы получаете более 90% запросов, если вы можете обращаться с Google (AOL использует Google), Bing и Yahoo. Вам действительно нужно беспокоиться о других поисковых сайтах? Если вы находитесь в Китае, как я, добавьте baidu.com в список.

Есть странные небольшие поисковые сайты, с которыми вы просто не справитесь. Они меняют свой параметр время от времени. Некоторые даже используют POST для отправки запроса, поэтому он недоступен в referrer.

1

В случае PHP вы запрашиваете $ _REQUEST ["HTTP_REFERRER"] и разбираете строку поиска с некоторыми прегами или eregs.

 Смежные вопросы

  • Нет связанных вопросов^_^