1

我正在阅读有关 robots.txt 的 Google 文档,发现他们会延迟索引您的网站,除非他们得到 404 或 200 响应:

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

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

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

这将转发到返回 200 的错误页面(但为 HTML 页面)。

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

当然,另一种选择是返回一个不会阻止任何内容的空 robots.txt。

4

1 回答 1

3

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

@Controller
public class RobotsTxtController {
    @RequestMapping("/robots.txt")
    @ResponseStatus(HttpStatus.NOT_FOUND)
    public void robotsTxt() {}
}

如果您希望显示实际页面,您可以让该方法返回视图名称。

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

于 2013-11-08T20:00:56.833 回答