在Drupal 7中,可以通过编程方式抛出404错误而不渲染两次页面。以下是实现这一目标的步骤:
function custom_404_menu() {
$items['custom-404'] = array(
'page callback' => 'custom_404_page_callback',
'access arguments' => array('access content'),
'type' => MENU_CALLBACK,
);
return $items;
}
function custom_404_page_callback() {
drupal_not_found();
drupal_exit();
}
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^custom-404$ index.php?q=custom-404 [L,QSA]
以上规则将重写URL路径,使之指向自定义的回调函数而不经过Drupal的页面渲染流程。
这样,当访问"custom-404"路径时,将直接抛出404错误,而不会触发Drupal的页面渲染过程。
领取专属 10元无门槛券
手把手带您无忧上云