对于我正在处理的特定项目,我希望返回拒绝访问,而不是对不存在的用户帐户返回404。我尝试在hook_menu()中设置自定义404页回调和访问回调,然后在访问user/
之类的路径时返回FALSE,但这没有帮助。我也尝试在回调中直接调用drupal_access_denied()
,但这只会导致服务器错误。
我也尝试过用user/%user
()覆盖hook_menu_alter菜单项,但这对404 not页面没有影响。
是否有任何方法可以获得像user/239841239
(任何不存在的用户ID)这样的路径来显示拒绝访问的页面,而不是404?
更新:我只是将我在自定义404页访问回调(参见下面)中使用的代码移动到页面回调中,现在访问拒绝页面得到了正确的服务。
// If visiting a non-existent user page, redirect to access denied.
if (strpos(request_path(), 'user/') !== FALSE) {
drupal_access_denied();
drupal_exit();
}
发布于 2013-01-29 09:33:17
我会尝试设置一个条件重定向从您的404页到您的自定义用户特定错误页面,只有当引用程序的路径是user/*时才会触发。
我会尝试使用规则来完成这个任务。
https://drupal.stackexchange.com/questions/58886
复制