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