会社のウェブサイトを CakePHP で書き直していますが、次のことを行う方法を見つける必要があります。
- ユーザーは、特定のメディア広告 (雑誌、Web プロモーションなど) 用に事前に生成されたプロモーション エイリアス URL の 1 つを使用して、当社のサイトにアクセスします。
- URL はエイリアス URL のデータベースに対してチェックされ、エイリアスが存在する場合は、特定のトラッキング コードがセッションに書き込まれます。
いくつかのオプションを検討しましたが、この目的には適していないようです。彼らです:
- ルックアップ スクリプトを appcontroller の beforeFilter() に配置して、すべてのコントローラーに含まれるようにします。(一度だけ実行されるようにセッション値を書き込みます。)
- このオプションは、既存のコントローラーに対してのみ機能し、URL が存在しない場合、Cake の「コントローラーが見つかりません」というエラーが発生します。
- Routes.php の各エイリアスの特定のルート - 機能しますが、管理インターフェイスを介して定期的に追加/削除される数百のエイリアス URL が存在する可能性があります。
- すべてのサイト URL を独自のアクションにルーティングし、ルックアップ スクリプトにマップされるエイリアス URL に対して「その他すべて」のルールを設定します。- メッシーで組み込みの Cake ルーティングが失われます。
- カスタム 404。 - これらの URL に対して 404 を返したくありません。実際に何にもマッピングされていない場合を除き、悪い習慣だと感じているからです。
このルックアップ/トラッキング スクリプトを配置できるアプリケーション フロー内の場所で、私は実際に行うことができました。
編集: また、say 'promo' という名前のサブフォルダーがこれを簡単に実行できることはわかっていますが、古いサイトの古い URL がたくさんあり、それらも処理する必要があります。