私は CakePHP にはかなり慣れていません。そのため、Zend Framework で行っていたいくつかの基本的なことで、Cake で打ちのめされてしまいました。
名前付きパラメーターをコントローラー/アクションに渡す必要があるプロジェクトに取り組んでいます。ルートを設定してパラメーターを渡すのはかなり簡単です。私の問題は、パラメーターが urlencoded url の場合です。
例: http://www.cakephp.com/controller/action/http%3A%2F%2Fwww.google.comは、コントローラーとアクションのセットアップに関係なく、404 をスローしますが、/controller/action/http を渡します。 //www.google.com は何らかの方法で機能しますが、唯一の問題は、http が名前付きパラメーターとして識別されることです。別の方法として、 /controller/action?url=http://www.google.com を実行すると動作します。
これに使用した回避策は、base64 でエンコードされた文字列として値を渡すことですが、いくつかの制限があります。たとえば、API の場合、API を使用するシステムが文字列を base64 でエンコードできることを保証できる方法はありません。
とにかく、最善の解決策は、URL でエンコードされた文字列を名前付きパラメーターに渡すことです。質問は、CakePHP が urlencoded 文字列をパラメーターとして受け入れないのはなぜですか? また、なぜ 404 をスローするのですか?
よろしくお願いします。