Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我可以阻止爬行器访问具有特定GET参数的页面吗?_Java_Servlets_Seo_Robots.txt_Googlebot - Fatal编程技术网

Java 我可以阻止爬行器访问具有特定GET参数的页面吗?

Java 我可以阻止爬行器访问具有特定GET参数的页面吗?,java,servlets,seo,robots.txt,googlebot,Java,Servlets,Seo,Robots.txt,Googlebot,我们有一个页面,可以选择将ID作为GET参数。如果提供的ID无效,页面将抛出一个错误并发出一个通知,指出有人错误地访问了页面。火上浇油的是,ID可以在一段时间内有效,然后过期 我们遇到了一个问题,搜索引擎机器人用过期的旧ID访问页面。这意味着我们每次被刺穿时都会收到一堆“假阳性”警报。我希望有一些方法来告诉机器人继续抓取页面,但不要使用GET参数——只需为无参数页面编制索引。通过robots.txt文件或类似的文件,这是否有可能实现 注意:我知道解决这个问题的最好方法是改变页面的行为,事实上,

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

我们遇到了一个问题,搜索引擎机器人用过期的旧ID访问页面。这意味着我们每次被刺穿时都会收到一堆“假阳性”警报。我希望有一些方法来告诉机器人继续抓取页面,但不要使用GET参数——只需为无参数页面编制索引。通过robots.txt文件或类似的文件,这是否有可能实现



注意:我知道解决这个问题的最好方法是改变页面的行为,事实上,这将在几周内发生。我正在寻找一个解决方案。

在if语句中检查_GET,将以下HTML:

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

您可以通过robots.txt中的以下内容建议爬行器忽略URL的某些部分:

User-agent: *
Disallow: *id=

编辑以澄清:这将导致爬行器忽略GET字符串中id=blah的任何URL——它不会神奇地“剥离”id=part。但是,这实际上是您想要的,因为不带“?id=”参数的正常URL会返回您想要索引的数据。

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