次の名前のコントローラーがありますSomeLongUnfriendlyName
。ルーターでエイリアスを付けました。CoolName
これで、誰かが を呼び出すたび/CoolName/theAction
に、/SomeLongUnfriendlyName/theAction
ここまでは順調ですね。私の問題は、元の名前
の使用を拒否したいということです。SomeLongUnfriendlyName
どうすればそれができますか?
ポップ ポップ ポップ
次の名前のコントローラーがありますSomeLongUnfriendlyName
。ルーターでエイリアスを付けました。CoolName
これで、誰かが を呼び出すたび/CoolName/theAction
に、/SomeLongUnfriendlyName/theAction
ここまでは順調ですね。私の問題は、元の名前
の使用を拒否したいということです。SomeLongUnfriendlyName
どうすればそれができますか?
ポップ ポップ ポップ
アプリコントローラーのbeforeFilterメソッドを使用して、指定されたURIに対応するルートがあるかどうかを確認できます。含まれている場合は、ルーティングされたクラスへのリダイレクトを発行するだけです。無限のリダイレクトを回避するために、ブラウザに表示されるURLを確認してください。
これをリダイレクト ルートとして追加できるはずです (Cake 2.x を使用している場合)。私は何も試したことはありませんが、ルーティングシステムについて知っていることから、これを最後に配置し、他のルートがキャッチされない場合、エイリアスコントローラーへの適切なリダイレクトが行われます。
Router::redirect(
'/SomeLongUnfriendlyName/*',
array('controller' => 'CoolName'),
array('status' => 302)
);
ここでは、使用したくない名前を新しい名前にリダイレクトしています。