如何隐藏不应该直接从用户和搜索引擎访问的Drupal节点?

时间:2010-09-24 00:03:53

标签: search drupal-6 tabs search-engine drupal-views

我已经看到了许多类似的问题,但没有什么我正在寻找的。所以冒着被告知这是重复的风险......这里就是这样。

我发现有时候我有一个节点只包含将在其他地方显示的内容,但不应直接查看。也就是说,没有人应该转到node / 1234,但是节点1234中的内容应该显示在其他地方。

例如,我使用视图创建了包含选项卡式内容的about页面。所以有“关于我”,“关于我们”和“关于他们”页面。所有这些都显示在一个页面中,其中包含使用Views的选项卡。所以我不希望人们直接进入“关于我们”节点,因为他们不会看到其他页面的选项卡。同时,我不希望Google向人们提供此节点的直接链接,我希望限制访问权限,以便用户只能通过View(即选项卡)访问它。

所以我需要限制对节点的访问,将其从Drupal搜索结果中删除,并确保Google不会接收它。有什么建议吗?

----注意----

我接受了mingos的答案(感谢顺便说一句),因为即使它不是一个完整的答案/解决方案,它给了我一些好的东西可以考虑。其他答案仍然欢迎。

7 个答案:

答案 0 :(得分:4)

在Drupal 7中,您可以使用:http://drupal.org/project/internal_nodes

描述:永远不应该直接查看某些内容/节点;只有通过视图或面板等其他内容才能看到。该模块拒绝访问节点/ [nid] URL,同时允许内容保持发布和以其他方式可见。

完全披露:我是内部节点的创建者和共同维护者。我在搜索模块的过程中发现了这个问题。

答案 1 :(得分:2)

艰难的一个。

如果你想拥有这样的许多节点并动态地“在别处显示”,我现在想不出任何事情(我很少能在凌晨2点20分)。

如果有这样的页面(或很少),我会通过任何可用的方式(权限,Nodeaccess,内容访问,TAC等)限制对它的访问,然后为受限内容的页面创建特殊主题应该显示。主题将包含数据库查询,从受限节点获取内容。

其他可能性可能包括为相关隐藏节点创建一个特殊主题(可能所有属于同一内容类型?)。使完整节点不显示任何内容(或显示访问受限的消息)并添加ROBOTS元标记,要求Google不要对该页面编制索引。尽管可以使用预告片视图 - 您可以在视图中自由显示它,但由于/ node / 1234是FULL视图,因此实际内容将不可用。

Dunno,如果这可以解决你的问题,希望它至少有一点帮助。

答案 2 :(得分:2)

在遇到同样的问题后我找到了这个页面。

我发现对我有用的可能是部分您需要的答案:

查看页面管理器重定向模块http://drupal.org/project/page_manager_redirect。我刚开始玩它。

它使用CTools的Page Manager模块将一个页面重定向到另一个页面。最强大的是页面管理器使用上下文。因此,如果您想重定向特定内容类型的所有页面,则可以这样做。

我刚开始使用它(而不是Taxonomy Redirect和Path Redirect)将特定词汇表的分类术语重定向(301响应代码)到特定节点。

在您的实例中,您应该能够使用上下文来过滤特定页面。

当然,这并不能解决搜索结果中出现这些节点的问题。

答案 3 :(得分:2)

还有另一个模块Rabbit Hole,它具有类似Internal Nodes的功能,但适用于所有实体,而不仅仅适用于节点。

答案 4 :(得分:1)

我遇到了同样的问题,目前正在考虑以下解决方案,其中节点的所有内容都将显示给某些用户(基于权限): - 取消发布节点 - 创建一个新发布的复选框 - 使用显示内容

的字段创建视图

尚未彻底测试,但似乎有效。

节点将显示给创建者(权限1中只有一个),其中一些显示权限2,所有节点都显示权限3。

对此解决方案的任何评论。

我认为这也会将其从搜索中排除,但是权限2和3需要能够搜索它。还是没想出那一个。

答案 5 :(得分:0)

我使用了Rules模块,其中“entity is bundle”和内置的“Page redirect”操作。

答案 6 :(得分:0)

如果您只想通过视图显示内容类型,那么有一种非常简单的方法可以执行此操作。

  1. 创建内容类型,并将其取消发布。
  2. 创建一个视图并在过滤器选项上将过滤器设置为“Content:Published(No)”
  3. 该视图将允许匿名用户通过视图访问内容,但他们无法访问内容的直接链接中的未发布内容。