我正在用 cakephp 重写我们公司的网站,需要找到一种方法来执行以下操作:
- 用户使用为特定媒体广告(杂志、网络推广等)预先生成的促销别名 URL 之一进入我们的网站
- 根据别名 URL 数据库检查 URL,如果存在别名,则将特定跟踪代码写入会话中。
我考虑了几种选择,但似乎都不适合此目的。他们是:
- 将查找脚本放在 appcontroller 的 beforeFilter() 中,使其包含在每个控制器中。(写入一个会话值,因此它只执行一次。)
- 此选项仅适用于现有控制器,如果 URL 不存在,则会给出 Cake 'missing controller' 错误。
- Routes.php 中每个别名的特定路由 - 可以通过管理界面定期添加/删除数百个别名 url。
- 将所有站点 URL 路由到它们自己的操作,并为映射到我的查找脚本的别名 URL 设置“其他所有”规则。- 凌乱,我失去了内置的蛋糕路由。
- 自定义 404。-我不想为这些 url 返回 404,因为我觉得这是不好的做法,除非它们真的没有映射到任何东西。
我真的可以在应用程序流程中放置一个可以放置此查找/跟踪脚本的位置,而且我对蛋糕还很陌生,所以我很难过。
编辑:另外,我知道一个名为 say 'promo' 的子文件夹很容易做到这一点,但我有很多来自旧站点的旧 URL,也需要处理。