Я переписываю веб-сайт нашей компании на cakephp, и мне нужно найти способ сделать следующее:
- Пользователь заходит на наш сайт, используя один из рекламных псевдонимов URL-адресов, который был предварительно создан для конкретной рекламы в СМИ (журнала, веб-рекламы и т. д.).
- URL-адрес сверяется с базой данных псевдонимов URL-адресов, и, если псевдоним существует, в сеанс записывается специальный код отслеживания.
Я рассмотрел несколько вариантов, ни один из которых не подходит для этой цели. Они есть:
- Putting the lookup script in the
beforeFilter() in appcontroller, so
that its included in every
controller. (Writes a session value
so it only perfoms once.)
- This option only works for existing contollers, and gives the Cake 'missing controller' error if a URL doesn't exist.
- Конкретные маршруты для каждого псевдонима в Routes.php — работает, но потенциально сотни URL-адресов псевдонимов регулярно добавляются/удаляются через интерфейс администратора.
- Направить все URL-адреса сайта на их собственные действия и иметь правило «все остальное» для псевдонимов URL-адресов, которые сопоставляются с моим сценарием поиска. - Месси и я теряем встроенную в Cake маршрутизацию.
- Пользовательский 404. - Я не хочу возвращать 404 для этих URL-адресов, так как считаю это плохой практикой, если только они действительно не сопоставляются ни с чем.
Мне действительно не помешало бы место в потоке приложения, куда я мог бы поместить этот скрипт поиска/отслеживания, и я довольно новичок в тортах, поэтому я в тупике.
РЕДАКТИРОВАТЬ: Кроме того, я знаю, что подпапка под названием «promo» легко сделает это, но у меня есть много устаревших URL-адресов с нашего старого сайта, которые тоже нуждаются в обработке.