Как в Symfony правильно определять, что страницу загружает поисковик?
Добрый день.
Хочу настроить сайт, чтобы отдавал поисковикам немного отличную страницу от той, что показывается обычным пользователям.
Как в Symfony 1.2. правильно определять, что страницу загружает поисковик?
Страницы генерируются путем склейки частей, которые могут располагаться в нескольких модулях. Делать проверку в каждом модуле на мой взгляд некрасиво.
Можно как-нибудь в Symfony при загрузке страницы делать проверку посетителя только один раз (поисковик или нет) и потом использовать запомненное значение в любом модуле/шаблоне и т.п?
P.S. Поисковиков много. Но меня интересуют только два (гугл и яндекс).
Руслан Квашнин: Спасибо, что откликнулись. Я не успел прочитать Ваш ответ до удаления. У меня действительно Symfony 1.2, но Ваш ответ мог бы пригодиться кому-то со схожей задачей при использовании symfony более свежих версий.
Такую проверку делать в каждом модуле или можно ее как-то в одном месте сделать, а потом результатом в любых модулях пользоваться?
Если проверку делать в каждом модуле отдельно, то потом при необходимости внести изменения в код (например, добавить еще одного бота в список), придется в куче мест правки одинаковые делать.
И по производительности тоже вопрос. Если при формировании одной страницы одинаковая проверка будет производиться несколько раз (отдельно в каждом модуле), то это вероятно лишние затраты.
andrey69rus: Я так и хотел бы сделать (в одном месте, а потом юзать if $isBot.... ), но вот как это сделать я не знаю. Поэтому пока остановился на варианте, когда в каждом модуле своя проверка. Конечно, это не самый красивый вариант, но рабочий. Здесь уже вопрос из плоскости, как определить бота, переходит в другую плоскость - как создавать на лету и использовать глобальные переменные в symfony. Поскольку быстрого решения не нашел, решил использовать тот вариант, который предложили.