【问题标题】:Robots.txt Allow sub folder but not the parentRobots.txt 允许子文件夹但不允许父文件夹
【发布时间】:2011-09-30 10:24:03
【问题描述】:

谁能解释一下以下场景的正确robots.txt 命令。

我想允许访问:

/directory/subdirectory/..

但我也想限制对/directory/ 的访问,尽管有上述例外。

【问题讨论】:

    标签: robots.txt


    【解决方案1】:

    请注意,没有真正的官方标准,任何网络爬虫都可能很乐意忽略您的 robots.txt

    根据a Google groups post,以下至少适用于GoogleBot;

    User-agent: Googlebot 
    Disallow: /directory/ 
    Allow: /directory/subdirectory/
    

    【讨论】:

    • 我想动态允许子目录但不是第一级,将 Allow 语句更改为 Allow: /directory/*/ 有效。
    • 根据 robots.txt 维基百科条目,“允许”指令应放在“禁止”之前以实现最大兼容性(尽管 Google 或 Bing 都不会介意)
    【解决方案2】:

    我建议使用 Google 的机器人测试仪。利用谷歌网站管理员工具 - https://support.google.com/webmasters/answer/6062598?hl=en

    您可以直接在该工具中编辑和测试 URL,此外,您还可以获得大量其他工具。

    【讨论】:

    • 好点!不确定 2011 年我发布此内容时是否可用,但它是 WMT 的一个非常有用的补充。
    • QFDEV 我今天不得不使用机器人测试仪,因为我正在努力让我们公司的网站在 Google 的搜索结果中排名更高。我在“HTML 改进”下看到的唯一内容是重复的标题和元标记。这是因为他们两次阅读相同的页面(查询字符串)。同样出于某种原因,机器人正在爬取不存在的目录。我找到了您的帖子,这对我有所帮助,然后注意到 Google Web Master 工具中的测试员,并看到它会验证更改。认为它可以通过发布到您的线程来帮助其他开发人员。
    【解决方案3】:

    如果这些是真正的目录,那么接受的答案可能是您的最佳选择。但是,如果您正在编写应用程序并且目录是动态生成的路径(也称为上下文、路由等),那么您可能希望使用元标记而不是在 robots.txt 中定义它。这使您不必担心不同的浏览器可能如何解释/优先考虑对子目录路径的访问。

    你可以在代码中尝试这样的事情:

    if is_parent_directory_path
       <meta name="robots" content="noindex, nofollow">
    end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-16
      • 2017-08-10
      • 2016-09-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多