CakePHP обрабатывает несколько клиентов - PullRequest
0 голосов
/ 04 ноября 2011

Я пытаюсь создать веб-сайт, который будет иметь следующий

  1. Веб-доступ
  2. Мобильное приложение Android / iPhone для доступа к API
  3. Мобильный Интернет

Я хочу, чтобы все вышеперечисленные три имели доступ к одному и тому же корню и ресурсам с точки зрения изображений.URL будет

  1. site.com
  2. api.site.com
  3. m.site.com

может бытьальтернативный сайт с сенсорным экраном на touch.site.com

Как мне заставить CakePHP обрабатывать все это в одной установке?

1 Ответ

3 голосов
/ 04 ноября 2011

Лучше всего использовать префиксы .Внутренне ваши URL будут перенаправлены как /api/controller/action на действие под названием api_action.Вы можете переключать макеты / аутентификацию / любую логику в ваших beforeFilters в зависимости от префикса ($this->params['prefix']).

Для обработки этого в качестве поддоменов вам просто нужно выполнить некоторую внутреннюю переписку .htaccess, чтобы изменить URL-адреса с api.example.com/на ваш example.com/api префикс.Для правильной переадресации ссылок вам, вероятно, лучше всего реализовать пользовательский RouteClass .Посмотрите на класс CakeRoute по умолчанию для руководства.

...