我已经看到了许多类似的问题,但没有什么我正在寻找的。所以冒着被告知这是重复的风险......这里就是这样。
我发现有时候我有一个节点只包含将在其他地方显示的内容,但不应直接查看。也就是说,没有人应该转到node / 1234,但是节点1234中的内容应该显示在其他地方。
例如,我使用视图创建了包含选项卡式内容的about页面。所以有“关于我”,“关于我们”和“关于他们”页面。所有这些都显示在一个页面中,其中包含使用Views的选项卡。所以我不希望人们直接进入“关于我们”节点,因为他们不会看到其他页面的选项卡。同时,我不希望Google向人们提供此节点的直接链接,我希望限制访问权限,以便用户只能通过View(即选项卡)访问它。
所以我需要限制对节点的访问,将其从Drupal搜索结果中删除,并确保Google不会接收它。有什么建议吗?
----注意----
我接受了mingos的答案(感谢顺便说一句),因为即使它不是一个完整的答案/解决方案,它给了我一些好的东西可以考虑。其他答案仍然欢迎。
答案 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)
如果您只想通过视图显示内容类型,那么有一种非常简单的方法可以执行此操作。
该视图将允许匿名用户通过视图访问内容,但他们无法访问内容的直接链接中的未发布内容。