Как сбросить ошибку 404 в модуль Drupal?

Мне нужно сбросить ошибку 404 в модуле. Или, может быть, есть возможность установить требуемый параметр для меню?

Ответ 1

Это просто. Они должны позаботиться о watchdog, HTTP-коде ответа HTTP 404 и других связанных вещах.

Для Drupal 6 и 7

В return drupal_not_found(); страницы модуля выполните: return drupal_not_found();

Для Drupal 8

В class::method() указанном в определении _controller (т. throw new NotFoundHttpException(); страницы или методе, ответственном за генерирование вывода для запроса), выполните: throw new NotFoundHttpException();

Рекомендации

Ответ 2

Для Drupal 8

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

Ответ 3

MENU_NOT_FOUND должен быть возвращен в функции обратного вызова страницы.

Функция обратного вызова страницы, желающая сообщить сообщение "не найденная страница", должна возвращать MENU_NOT_FOUND вместо вызова drupal_not_found(). - http://api.drupal.org/api/drupal/includes!common.inc/function/drupal_not_found/7

Ответ 4

Посмотрите на функцию drupal_add_http_header(), чтобы играть с атрибутами заголовка HTTP. Также убедитесь, что вы придерживаетесь этого в верхней части кода модуля, чтобы убедиться, что он выполняется в первую очередь. Кроме того, вы можете найти это полезным. https://www.drupal.org/project/generate_errors