Запретить доступ (вместо 404) для несуществующих учетных записей пользователей
Для конкретного проекта, над которым я работаю, я хотел бы вернуть отказ в доступе вместо 404 для несуществующих учетных записей пользователей. Я попытался настроить пользовательский обратный вызов страницы 404 и обратный вызов доступа в hook_menu(), а затем возвращать значение FALSE при посещении таких путей, как user/
, но это не помогает. Я также пытался вызвать drupal_access_denied()
непосредственно при обратном вызове, но это просто приводит к ошибке сервера.
Я также пытался переопределить пункт меню user/%user
в hook_menu_alter(), но это никак не влияет на 404 не найденных страницы.
Есть ли какой-либо способ получить пути, подобные user/239841239
(любой несуществующий идентификатор пользователя), для отображения страницы с отказом в доступе вместо 404?
[ Обновление: Я просто переместил код, который использовал в пользовательском обратном вызове доступа к странице 404 (см. Ниже), на обратный вызов страницы, и теперь страница с отказом в доступе обслуживается правильно.]
// If visiting a non-existent user page, redirect to access denied.
if (strpos(request_path(), 'user/') !== FALSE) {
drupal_access_denied();
drupal_exit();
}