1

私はsymfony 1.4を使用しています。

404 エラーが発生したときに特定の URL をリダイレクトする必要があります。ユーザーが URL http://example.com/oldurlを探していて、存在しないとしましょう。この URL がリダイレクト用に設定されているかどうかを確認したいと思います。URLがリダイレクトされるように設定されている場合、そのURLにリダイレクトしたいと思います。

質問: 404 エラー ページにリダイレクトされた、要求された URL に関する情報を取得するには、どのイベントにフックする必要がありますか?

PSページが存在しない場合にのみリダイレクトを確認したい。ページが見つからない場合にのみ、リクエストごとに「チェック」を実行したくありません!

どうもありがとう!

4

2 に答える 2

1

symfonyは、ページが見つからないたびにイベントを発生させますcontroller.page_not_found

ドキュメントで見つけることができます:http ://www.symfony-project.org/reference/1_4/en/15-Events#chapter_15_sub_controller_page_not_found

編集:

コンテキストを呼び出すことにより、このイベントをリッスンするメソッドのURLを取得できます。そのようなもので:

$context = sfContext::hasInstance() ? sfContext::getInstance() : null;
if(null !== $context)
{
  $requested_url = $context->getRequest()->getUri();
}

プラグインsfErrorNotifierPluginを詳しく見ることができます。これは、例外と404エラーをキャッチし、レポート用の電子メールを送信します。彼らが404エラーをどのように処理するかを見てください。

于 2012-04-13T05:30:37.793 に答える