Eine Facebook-App wird auf meinem Server gehostet, z. B. http://server.com/projects/fbapp/, aber wird nur in Facebook bei, zum Beispiel http://apps.facebook.com/fbapp/.In CakePHP, ist es möglich, interne und externe Routen zu haben?
Mit CakePHP stellt dies ein Problem dar - sollten Routen mit "/ project/fbapp" oder nur "fbapp" vorangestellt werden?
Es ist ein Problem, da Routen nicht nur zum Weiterleiten eingehender Anfragen, sondern auch zum Generieren von Verknüpfungen (und Formularaktionen usw.) verwendet werden.
Als Flickschusterei, ich habe jetzt zwei Routing-Instruktionen pro Strecke:
Router::connect('/pages/*', array('controller' => 'pages', 'action' => 'display'));
Router::connect('projects/fbapp/pages/*', array('controller' => 'pages', 'action' => 'display'));
Mit dem ersten wegen einer Zeile ein Präfix nicht erforderlich ich bootstrap.php aufgenommen haben:
Configure::write('App.base', '/fbapp');
Bei Reverse-Routing-Vorgängen tritt ein.
Meine Frage ist, ob es eine elegantere Möglichkeit gibt, dies zu tun? Das scheint sehr hässlich und ich bin mir sicher, dass es nicht sehr Cakey ist.
Ich weiß, es ist irgendwie eine beschissene Antwort, aber was ist mit dem Ausführen von http://server.com:8080/fbapp/ stattdessen? – Justin
Es ging mir durch den Kopf! Ich bin der Meinung, dass es genauso kludig/effektiv ist wie meine aktuelle Lösung. Ich denke, es ist akademisch, aber ich würde gerne eine elegante Lösung haben. –
Wäre ein (Apache) Umschreiben von Traffic von Facebook nicht die eleganteste Lösung?Ihr interner Computer müsste nur mit einem Pfad arbeiten. Wenn Sie die App zu einem späteren Zeitpunkt in einen anderen Service/eine andere Plattform integrieren möchten, müssen Sie nur eine weitere Rewrite-Regel hinzufügen, anstatt sich mit der eigentlichen Anwendung zu beschäftigen. – jacobangel