是否有可用于禁用某些Drupal系统页面的模块?例如,我想停用node
,taxonomy/term/*
,filter/tips
。
答案 0 :(得分:8)
我不确定是否有一个模块可以做到这一点,但为此编写自己的自定义模块并不困难。您只需要实现hook_menu_alter(并在更改代码后清除缓存)。您可以选择返回“拒绝访问”页面或“未找到404”:
<?php
function MODULENAME_menu_alter(&$items) {
// This will deny access to taxonomy/term/* for all users.
$items['taxonomy/term/%']['access callback'] = FALSE;
// This will completely remove filter/tips, resulting in a 404.
unset($items['filter/tips']);
}
?>
如果您想了解有关编写Drupal模块的更多信息,请参阅http://drupal.org/developing/modules。
答案 1 :(得分:6)
这对我来说似乎更像是“一次性”配置。所以我想知道是否有必要在你的一条评论中为你提供一个管理界面。
如果您使用的是apache,则在您网站的虚拟主机配置中,您可以包含以下指令:
<LocationMatch ^/taxonomy/term>
SetHandler server-status
Order Deny,Allow
Deny from all
</LocationMatch>
<LocationMatch ^/filter/tips>
SetHandler server-status
Order Deny,Allow
Deny from all
</LocationMatch>
这将拒绝访问这些网址。但是您需要确保没有名称为taxonomy/term/
等路径的URL别名。否则,用户可以访问这些URL。
检查http://httpd.apache.org/docs/2.0/mod/core.html#locationmatch 和http://httpd.apache.org/docs/2.0/mod/core.html#location一些文件