【问题标题】:CakePHP handling multiple ClientsCakePHP 处理多个客户端
【发布时间】:2026-01-10 17:45:02
【问题描述】:
我正在尝试创建一个包含以下内容的网站
- 网络访问
- Android/iPhone 移动应用访问 API
- 移动网络
我希望以上三个都可以访问相同的 webroot 和图像资源。
网址将是
- site.com
- api.site.com
- m.site.com
可能是 touch.site.com 上的替代触摸屏网站
如何让 CakePHP 在一次安装中处理所有这些?
【问题讨论】:
标签:
cakephp
cakephp-1.3
cakephp-2.0
【解决方案1】:
最好的办法是使用prefixes。在内部,您的 URL 将像 /api/controller/action 一样被路由到名为 api_action 的操作。您可以根据前缀 ($this->params['prefix']) 在 beforeFilters 中切换布局/身份验证/任何逻辑。
要将其作为子域处理,您只需进行一些内部 .htaccess 重写,将 URL 从 api.example.com/ 更改为您的 example.com/api 前缀。要正确反向路由链接,您最好实现自定义RouteClass。查看默认的CakeRoute 类以获得指导。