web-dev-qa-db-ja.com

Drupalモジュールで404エラーをスローする方法は?

モジュールで404エラーをスローする必要があります。または、メニューフックに必要なオプションを設定する可能性はありますか?

20
webbear

容易いものだ。これらは、ウォッチドッグ、HTTP404応答コードおよびその他の関連事項を処理する必要があります。

For Drupal 6&7

モジュールのページコールバックで、次の操作を行います。return drupal_not_found();

For Drupal 8

__controller_定義で参照されているclass::method()(つまり、ページコールバックまたはリクエストの出力の生成を担当するメソッド)で、次の手順を実行します。throw new NotFoundHttpException();

参照

23
Ayesh K

Drupal 8

use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
// then
throw new NotFoundHttpException();
24
Muhammad Reda

MENU_NOT_FOUNDはページコールバック関数で返される必要があります。

「ページが見つかりません」というメッセージを報告したいページコールバック関数は、drupal_not_found()を呼び出す代わりにMENU_NOT_FOUNDを返す必要があります。 — http://api.drupal.org/api/drupal/includes!common.inc/function/drupal_not_found/7

5
cilefen

Drupal_add_http_header()関数を調べて、HTTPヘッダー属性を操作します。また、これをモジュールのコードの先頭に貼り付けて、最初に実行されるようにしてください。また、これが役立つ場合があります。 https://www.drupal.org/project/generate_errors

2
dsteplight