drupal_not_found
- Versions
- 4.6 – 7
drupal_not_found()
Generates a 404 error if the request can not be handled.
Code
includes/common.inc, line 356
<?php
function drupal_not_found() {
drupal_set_header('HTTP/1.1 404 Not Found');
watchdog('page not found', check_plain($_GET['q']), NULL, WATCHDOG_WARNING);
// Keep old path for reference, and to allow forms to redirect to it.
if (!isset($_REQUEST['destination'])) {
$_REQUEST['destination'] = $_GET['q'];
}
$path = drupal_get_normal_path(variable_get('site_404', ''));
if ($path && $path != $_GET['q']) {
// Set the active item in case there are tabs to display, or other
// dependencies on the path.
menu_set_active_item($path);
$return = menu_execute_active_handler($path);
}
if (empty($return) || $return == MENU_NOT_FOUND || $return == MENU_ACCESS_DENIED) {
drupal_set_title(t('Page not found'));
$return = t('The requested page could not be found.');
}
// To conserve CPU and bandwidth, omit the blocks.
print theme('page', $return, FALSE);
}
?>Login or register to post comments 
drupal_access_denied
Use drupal_access_denied() to display a 403, instead of a 404.