В awstats я получаю таблицу со всеми ключевыми словами и фразами, используемыми для поиска моего сайта. Я хотел бы зафиксировать это сам, однако каждый URL-адрес поисковой системы в другом формате. Когда google – это референт, я могу использовать переменную q из querystring в качестве условия поиска (например, google.com?q=my+keywords), но другая поисковая система может иметь формат searchengine.com?search=my+keywords
Существует ли общий способ определения ключевых слов? Или мне нужно создать регулярное выражение / фильтр для каждой поисковой системы?
Одна из возможностей – просто захватить ссылочный URL ( $_SERVER['HTTP_REFERER']
) и проанализировать ключевые слова в нем.
Например, проверьте этот URL-адрес Google (поиск «переполнение стека»):
http://www.google.com/search?hl=en&q=stack+overflow&aq=0&oq=stack+over&aqi=g10
Значение переменной q
GET содержит ключевые слова, разделенные символами +.
Мне нужно постоянно добавлять его, но вот REGEX, который должен лишить ключевые слова из google, yahoo, bing, ask и MSN (так же, как Bing). Он оставляет + между ними, но это должно быть хорошим местом для вас:
.*(\?p=|\?q=|&q=|\?s=)([a-zA-Z0-9 +]*)(&toggle=|&ie=utf-8|&FORM=|&aq=|&x=|&gwp).