この質問に関連する新しい質問がありますが、質問がまったく一致しないため、この新しいトピックを作成しています。しかし、それは良い参考のためです。
私は物事について考えlogs
を変えました、大丈夫です。しかし、私はと呼ばれる別のコントローラーを持っています。この場合、私は本当にURLを変更したいと思います。私はURLがそうなるのが嫌いです、私はそれをしたいです。これははるかにクリーンであり、この規則は、ではなく、とも呼ばれる他のサイトと100%一致するようになりました。ただし、慣例により、コントローラーを呼び出す必要があります。log
logs
WikisController
example.com/wikis/subject.html
example.com/wiki/subject.html
wiki
wikis
WikisController
CakePHP
さて、今、本当の問題が発生します。私は現在、次のルーティングを使用していました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の余分な単語であり、ユーザーが自分の居場所を理解する必要はありません。
以前に発生した小さなバグのためlink
、controller
andキーを使用して作成しています。action
を指定しなかった場合、明らかに、不要action
なリンクが作成されます。したがって、キーを配列example.com/edit.html
に追加する必要があります。action => index
これが本当のバグかどうかはわかりませんが、問題ではありません。Index = index
そしてそれを変えるものは何もありません。私のURLが正しいページを指していると確信しているのは良いことなので、を追加することaction
は私にとって問題ではありません。
念のため:
上記とまったく同じ方法でexample.com/flights/index.html
ページからリンクを作成すると、URLからexample.com/flights/add.html
その部分が削除され、よりクリーンな/index
URLが作成されます。example.com/flights.html
したがって、ルーティングに何らかの影響を与える必要がありますが、私には何がわかりません。