1

この質問は、CakePHPでのエイリアスURLの処理に関する私の古い投稿に少し関連しています

よく考えた結果、Cakeアプリにカスタム404スクリプトを含めるオプションを検討しています。これは、URLがコントローラー/アクションにマップされていない場合に到達します。このスクリプトは$this->hereをチェックし、リダイレクトのデータベースで検索します。一致するものが見つかると、特定の「プロモーション」コードを追跡してリダイレクトします。

ステータスコードを考えています。特定の条件に基づいて、スクリプトに適切なステータスコードを返すようにできますか?例えば:

  1. URLがリダイレクトに一致します-301を返します
  2. URLには実際には宛先がありません-404を返します。

これはできますか?

編集:

これはどうですか?誰かがそれに関する問題を見ますか?app_controllerに入れました。

function appError($method, $params) {

    //do clever stuff here

}
4

3 に答える 3

4

私はいつもapp\views\errors\missing_action.ctpapp\views\errors\missing_controller.ctpを作成しました

URL がコントローラーまたはそのメソッドにマッピングされていない場合、Cake はこれらのビューの 1 つを自動的に表示します。

あなたが与えなかったエラーコードが必要でない限り、これは完璧に機能します!

于 2009-06-03T17:32:45.663 に答える
0

felixgeの答えを増やしたいと思います。

このバージョンは、ブラウザに 404 エラーを出力します。

class AppError extends ErrorHandler
{
        function _outputMessage($template)
        {
                if ($template === 'error404') {
                        $Dispatcher = new Dispatcher();
                        $Dispatcher->dispatch('legacy_urls/map', array('broken-url' => '/'.$params['url']));
                        return;
                }
                parent::_outputMessage($template);
        }
}
于 2011-11-05T21:10:23.177 に答える