spring boot 如何添加 robots.txt 接口?

spring boot 如何添加 robots.txt 接口?

1 个解决方案

AllenJiang
中间件研发,关注微信公众号 : 小哈学Java, 回复"666", 即可免费领取10G学习&面试资料

先贴上 contorller 层的代码:

/**
	 * robots txt
	 *
	 * @return
	 */
	@GetMapping("/robots.txt")
	public void robotsTxt(HttpServletResponse response) throws IOException {
		Writer writer = response.getWriter();
		String lineSeparator = System.getProperty("line.separator", "\n");
		writer.append("User-agent: *").append(lineSeparator);
		writer.append("Disallow:").append("/question/tag/*").append(lineSeparator);
		writer.append("Disallow:").append("/user/*").append(lineSeparator);
		writer.append("Disallow:").append("/answer/*/edit").append(lineSeparator);
		writer.append("Disallow:").append("/question/*/edit").append(lineSeparator);
	}

访问接口,我们可以看到输出:

User-agent: *
Disallow: /question/tag/*
Disallow: /user/*
Disallow: /answer/*/edit
Disallow: /question/*/edit

robots.txt 相关文档

robots.txt 文件的格式:

robots 文件往往放置于根目录下,包含一条或更多的记录,这些记录通过空行分开(以 CR,CR/NL, or NL 作为结束符),每一条记录的格式如下所示:

 "<field>:<optional space><value><optionalspace>"

在该文件中可以使用 #进行注解,具体使用方法和 UNIX 中的惯例一样。该文件中的记录通常以一行或多行 User-agent 开始,后面加上若干 Disallow 和 Allow 行, 详细情况如下:

User-agent: 该项的值用于描述搜索引擎 robot 的名字。在 "robots.txt" 文件中,如果有多条 User-agent 记录说明有多个 robot 会受到 "robots.txt" 的限制,对该文件来说,至少要有一条 User-agent 记录。如果该项的值设为*,则对任何 robot 均有效,在 "robots.txt" 文件中,"User-agent:*" 这样的记录只能有一条。如果在 "robots.txt" 文件中,加入 "User-agent:SomeBot" 和若干 Disallow、Allow 行,那么名为 "SomeBot" 只受到 "User-agent:SomeBot" 后面的 Disallow 和 Allow 行的限制。

Disallow: 该项的值用于描述不希望被访问的一组 URL,这个值可以是一条完整的路径,也可以是路径的非空前缀,以 Disallow 项的值开头的 URL 不会被 robot 访问。例如 "Disallow:/help" 禁止 robot 访问 /help.html、/helpabc.html、/help/index.html,而 "Disallow:/help/" 则允许 robot 访问 /help.html、/helpabc.html,不能访问 /help/index.html。"Disallow:" 说明允许 robot 访问该网站的所有 url,在 "/robots.txt" 文件中,至少要有一条 Disallow 记录。如果 "/robots.txt" 不存在或者为空文件,则对于所有的搜索引擎 robot,该网站都是开放的。

Allow: 该项的值用于描述希望被访问的一组 URL,与 Disallow 项相似,这个值可以是一条完整的路径,也可以是路径的前缀,以 Allow 项的值开头的 URL 是允许 robot 访问的。例如 "Allow:/hibaidu" 允许 robot 访问 /hibaidu.htm、/hibaiducom.html、/hibaidu/com.html。一个网站的所有 URL 默认是 Allow 的,所以 Allow 通常与 Disallow 搭配使用,实现允许访问一部分网页同时禁止访问其它所有 URL 的功能。

通配符 *$ 的说明:

  • "*" 匹配 0 或多个任意字符

  • "$" 匹配行结束符

robots.txt 文件用法举例: