Spring mvc 允许在Spring MVC中为(有效)缺失的robots.txt返回404

Spring mvc 允许在Spring MVC中为(有效)缺失的robots.txt返回404,spring-mvc,tomcat7,robots.txt,Spring Mvc,Tomcat7,Robots.txt,我正在阅读robots.txt上的谷歌文档,发现他们会延迟为你的网站编制索引,除非他们得到404或200响应: 在Googlebot抓取您的站点之前,它会访问robots.txt文件以 确定您的站点是否阻止Google对任何页面或内容进行爬网 网址。如果robots.txt文件存在但无法访问(在其他 换句话说,如果它不返回200或404HTTP状态码),我们将 推迟我们的抓取,而不是冒险抓取不允许的URL 在我的网站上,我使用web.xml错误代码将错误代码映射到Spring MVC控制器方法:

我正在阅读robots.txt上的谷歌文档,发现他们会延迟为你的网站编制索引,除非他们得到404或200响应:

在Googlebot抓取您的站点之前,它会访问robots.txt文件以 确定您的站点是否阻止Google对任何页面或内容进行爬网 网址。如果robots.txt文件存在但无法访问(在其他 换句话说,如果它不返回200或404HTTP状态码),我们将 推迟我们的抓取,而不是冒险抓取不允许的URL

在我的网站上,我使用web.xml错误代码将错误代码映射到Spring MVC控制器方法:

<error-page>
  <error-code>404</error-code>
  <location>/showerror</location>
</error-page>

404
/淋浴器
这将转发到一个返回200的错误页面(但是是一个HTML页面)

当请求的URL是robots.txt时,我实际上希望404返回未处理。是否有一种简单的方法可以免除特定URL(/robots.txt)的错误处理


当然,另一个选项是返回一个空的robots.txt,它不会阻止任何东西。

我可能会使用的方法是在控制器中实际处理它:

@Controller
public class RobotsTxtController {
    @RequestMapping("/robots.txt")
    @ResponseStatus(HttpStatus.NOT_FOUND)
    public void robotsTxt() {}
}
如果希望显示实际页面,可以让方法返回视图名称

这样,它是一个实际的“页面”,不由正常的404进程处理,但
@ResponseStatus
使其返回为404