【问题标题】:Can I prevent spiders from accessing a page with certain GET parameters?我可以阻止蜘蛛访问带有某些 GET 参数的页面吗?
【发布时间】:2011-09-02 17:57:06
【问题描述】:

我们有一个可以选择将 ID 作为 GET 参数的页面。如果提供的 ID 无效,该页面会抛出错误并发出通知,告知某人正在错误地访问该页面。火上浇油的是,ID 可以有效一段时间,然后过期。

我们遇到了一个问题,即搜索引擎机器人使用旧的过期 ID 访问页面。这意味着每次我们被蜘蛛攻击时都会收到一堆“误报”警报。我很想有一些方法来告诉机器人继续抓取页面,但不使用 GET 参数——只需索引无参数页面。这甚至可以通过 robots.txt 文件或类似文件远程实现吗?


注意:我知道解决此问题的最佳方法是更改​​页面的行为,事实上,这会在几周内发生。目前我只是在寻找解决方案。

【问题讨论】:

  • 抛出错误和通知的过期 GET 参数听起来不是一个优雅的解决方案。我建议您回去寻找一种替代方法来解决您想要实现的目标。
  • @Mikaveli:正如我在说明中指出的那样,我们正在积极解决这个问题。这只是一个临时解决方案。
  • 您的应用程序的架构是什么——语言和环境?
  • 当前页面是一个旧的 Java Struts 页面,运行在带有 Apache Tomcat 的 Linux 机器上。
  • 完美,然后看看我的回答。基本上,您可以通过过滤器类强制所有或某些请求,它可以在决定是否正常转发请求之前检查 ID 的有效性 - 或执行一些其他操作 - 例如将机器人发送到替代的“过期”页面。跨度>

标签: java servlets seo robots.txt googlebot


【解决方案1】:

在检查 _GET 的 if 语句中,放置以下 HTML:

<meta name="robots" content="noindex, nofollow">
<meta name="googlebot" content="noindex, nofollow">

【讨论】:

    【解决方案2】:

    您可以在 robots.txt 中使用以下内容建议蜘蛛忽略您 URL 的某些部分:

    User-agent: *
    Disallow: *id=
    

    编辑澄清:这将导致蜘蛛忽略任何在 GET 字符串中带有 id=blah 的 URL——它不会神奇地“剥离” id= 部分。但是,这实际上是您想要的,因为没有“?id=”参数的普通 URL 返回您想要索引的数据。

    【讨论】:

      猜你喜欢
      • 2021-05-29
      • 2010-10-13
      • 2023-02-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多