Приложение Facebook размещено на моем сервере, скажем, http://server.com/projects/fbapp/, но его можно просмотреть только в Facebook на, например, http://apps.facebook.com/fbapp/.В CakePHP возможно ли иметь внутренние и внешние маршруты?
Использование CakePHP представляет проблему: должны ли маршруты иметь префикс «/ project/fbapp» или просто «fbapp»?
Это проблема, потому что маршруты используются не только для маршрутизации входящих запросов, но и для генерации ссылок (и действий формы и т. Д.).
Как ляп, у меня теперь есть две маршрутизации инструкции для каждого маршрута:
Router::connect('/pages/*', array('controller' => 'pages', 'action' => 'display'));
Router::connect('projects/fbapp/pages/*', array('controller' => 'pages', 'action' => 'display'));
с первым не требует префикса из строки я включил в Bootstrap.php:
Configure::write('App.base', '/fbapp');
Что происходит во время операций обратной маршрутизации.
Вопрос в том, есть ли более элегантный способ сделать это? Это кажется очень уродливым, и я уверен, что это не очень Cakey.
Я знаю, что это отвратительный ответ, но как насчет запуска http://server.com:8080/fbapp/? – Justin
Это перешло мне в голову! Я считаю, что это так же хорошо, как мое текущее решение. Я думаю, это академический, но мне бы очень понравилось элегантное решение. –
Не будет ли (apache) переписать трафик с facebook самым изящным решением?На вашей внутренней машине нужно было бы иметь дело только с одним путем, и если бы вы захотели интегрировать приложение с другой службой/платформой на более позднюю дату, вам нужно было бы добавить только другое правило перезаписи, а не вмешиваться в это приложение. – jacobangel