【问题标题】:Drupal - Remove RSSDrupal - 删除 RSS
【发布时间】:2009-10-20 20:41:20
【问题描述】:

我刚刚建立了一个基于社区的新 Drupal 站点。有些论坛包含“敏感”信息,但令人难以置信的是,Drupal 自动为分类术语生成 RSS 提要,这是论坛所基于的。

没有内置的方法可以关闭它!或者一个模块来控制生成什么提要......这是一个大问题。

使用 Drupal 6.14。我不想破解核心,但如果有人知道解决这个问题的方法......那就太好了

谢谢

【问题讨论】:

  • 不属于serverfault,移除标签。

标签: drupal rss


【解决方案1】:

您可以尝试在自定义模块中调用hook_menu,该模块会接管敏感的 URL 并提供空白页或错误消息。关闭它们应该是核心,而且 Google 搜索显示很多脾气暴躁的人在这个问题上。

【讨论】:

  • hook_menu_alter,以及设置为 FALSE 的每个 RSS 路径的“页面回调”或“访问回调”。
【解决方案2】:

如果您使用的是Views 模块,您可以启用它提供的taxonomy_term 覆盖并编辑它提供的两个提要显示,将它们调整为仅适用于某些词汇表,甚至对任何请求强制使用 404。

请注意,这只是 ceejayoz(正确)建议的变体,因为视图会“接管”提要 URL 并为它们提供不同的服务。

【讨论】:

  • 我更喜欢这个解决方案,作为一个安全但有用的中间地带。
【解决方案3】:

现在有一个 Drupal 模块,可以做到这一点:RSS Permissions。以下是其项目页面的摘录:

为博客、分类法、聚合器和主站点的 RSS 提要设置基于角色的权限设置。此模块不会完全禁用 RSS 提要:通过视图模块创建的 RSS 提要和此处未列出的其他提要没有相关权限。

RSS 权限模块可让您根据不同的用户角色禁用部分或全部 RSS 提要,

【讨论】:

  • 最后用 .htaccess 修补了一些东西(我记得),但修复效果不佳 - 感谢您发布此内容,模块解决方案会更好。
【解决方案4】:

您可以在 system.admin.inc 的 system_rss_feeds_settings 函数的表单部分中扩展“选项”的值列表 - 在数组中添加“0”作为值。然后,这会将 0 公开为“每个提要中的项目数”的值,从而抑制 RSS 提要生成。

【讨论】:

  • 感谢您的回复 - 正如上面的 phpdiva 所发布的,幸好现在有一个模块可以让这更容易:)
【解决方案5】:

这适用于自定义模块。它将删除该页面以及该页面的 HTML 中的链接,这是针对 D7 的。确保刷新缓存。

function MYMODULE_menu_alter(&$items) {
   $items['rss.xml']['page callback'] = 'drupal_not_found';
}

function MYMODULE_html_head_alter(&$head_elements) {
  foreach ($head_elements as $key => $v) {
    if (strstr($key, 'rss.xml')) {
      unset($head_elements[$key]);
    }
  }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-13
    • 2014-01-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多