2

この質問に関連する新しい質問がありますが、質問がまったく一致しないため、この新しいトピックを作成しています。しかし、それは良い参考のためです。


私は物事について考えlogsを変えました、大丈夫です。しかし、私はと呼ばれる別のコントローラーを持っています。この場合、私は本当にURLを変更したいと思います。私はURLがそうなるのが嫌いです、私はそれをしたいです。これははるかにクリーンであり、この規則は、ではなく、とも呼ばれる他のサイトと100%一致するようになりました。ただし、慣例により、コントローラーを呼び出す必要があります。loglogsWikisControllerexample.com/wikis/subject.htmlexample.com/wiki/subject.htmlwikiwikisWikisControllerCakePHP

さて、今、本当の問題が発生します。私は現在、次のルーティングを使用していましたConfig/routes.php

Router::connect('/wiki/:action/*', array('controller' => 'wikis'));
Router::connect('/wiki/*', array('controller' => 'wikis'));

これは、他のトピックのソリューションで使用されるコードです。しかし今、私は少し問題にぶつかっています。まあ、すべてがうまく機能するので、それは本当に大きな問題ではありません。しかし、私はそのURLが好きではありません。

次のようにリンクを作成するとexample.com/wiki/edit.html

echo $this->Html->link('Wiki overview', array(
    'controller' => 'wikis',
    'action' => 'index',
    'ext' => 'html'
));

example.com/wiki/index.htmlそれは完全にうまくいくためのリンクを作成していて、それは機能します、しかし私は見せたくありませんindex.html、私はただ見せません。これはURLの余分な単語であり、ユーザーが自分の居場所を理解する必要はありません。

以前に発生した小さなバグのためlinkcontrollerandキーを使用して作成しています。actionを指定しなかった場合、明らかに、不要actionなリンクが作成されます。したがって、キーを配列example.com/edit.htmlに追加する必要があります。action => indexこれが本当のバグかどうかはわかりませんが、問題ではありません。Index = indexそしてそれを変えるものは何もありません。私のURLが正しいページを指していると確信しているのは良いことなので、を追加することactionは私にとって問題ではありません。

念のため:

上記とまったく同じ方法でexample.com/flights/index.htmlページからリンクを作成すると、URLからexample.com/flights/add.htmlその部分が削除され、よりクリーンな/indexURLが作成されます。example.com/flights.html

したがって、ルーティングに何らかの影響を与える必要がありますが、私には何がわかりません。

4

1 に答える 1

1

私の理解が正しければ/wiki、コントローラーindexアクションに接続するルートが必要になります。

Router::connect('/wiki', array('controller' => 'wikis', 'action' => 'index'));
Router::connect('/wiki/:action/*', array('controller' => 'wikis'));
...
于 2012-10-13T18:39:10.327 に答える