0

次の名前のコントローラーがありますSomeLongUnfriendlyName
。ルーターでエイリアスを付けました。CoolName
これで、誰かが を呼び出すたび/CoolName/theActionに、/SomeLongUnfriendlyName/theActionここまでは順調ですね。私の問題は、元の名前
の使用を拒否したいということです。SomeLongUnfriendlyName

どうすればそれができますか?


ポップ ポップ ポップ

4

2 に答える 2

1

アプリコントローラーのbeforeFilterメソッドを使用して、指定されたURIに対応するルートがあるかどうかを確認できます。含まれている場合は、ルーティングされたクラスへのリダイレクトを発行するだけです。無限のリダイレクトを回避するために、ブラウザに表示されるURLを確認してください。

于 2012-06-05T20:16:57.553 に答える
1

これをリダイレクト ルートとして追加できるはずです (Cake 2.x を使用している場合)。私は何も試したことはありませんが、ルーティングシステムについて知っていることから、これを最後に配置し、他のルートがキャッチされない場合、エイリアスコントローラーへの適切なリダイレクトが行われます。

Router::redirect(
  '/SomeLongUnfriendlyName/*', 
  array('controller' => 'CoolName'), 
  array('status' => 302)
);

ここでは、使用したくない名前を新しい名前にリダイレクトしています。

于 2012-06-05T20:21:51.067 に答える