.htaccess 如何为HTTP 301响应设置缺少的X-Robots-Tag?

rkttyhzu  于 2022-11-16  发布在  其他
关注(0)|答案(2)|浏览(159)

我想设置noindex x-robots标记为一个特定的坏搜索引擎的索引,甚至重定向页面,而不是最终目的地。
在我的root .htaccess文件的顶部,我添加了以下规则。

<IfModule mod_headers.c>
Header add X-Robots-Tag "BadBot: noindex"
</IfModule>

它是这样工作的。

Requesting http://example.com/page

SERVER RESPONSE: HTTP/1.1 301 Moved Permanently

Date: Mon, 17 Jul 2017 11:17:10 GMT
Content-Type: text/html; charset=iso-8859-1
Connection: keep-alive
Location: https://example.com/page

SERVER RESPONSE: HTTP/1.1 301 Moved Permanently

Date: Mon, 17 Jul 2017 11:17:11 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
Location: https://www.example.com/page/
X-Robots-Tag: BadBot: noindex

SERVER RESPONSE: HTTP/1.1 200 OK

Date: Mon, 17 Jul 2017 11:17:13 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
X-Robots-Tag: BadBot: noindex

请求:http://example.com/page最终:https://www.example.com/page/
在请求的URL中,在强制HTTPS时缺少X-robots-tag。是否有任何方法解决此问题?
谢谢

dgsult0t

dgsult0t1#

我想你犯了一个小语法错误。应该是Header set X-Robots-Tag而不是Header add X-Robots-Tag

<IfModule mod_headers.c>
Header set X-Robots-Tag "BadBot: noindex"
</IfModule>

参考:https://yoast.com/x-robots-tag-play/

jogvjijk

jogvjijk2#

Header add X-Robots-Tag "BadBot: noindex"

正如所公布的,这个指令不会在301重定向中的任何一个上设置头,它只会在最后的200 OK响应上设置头。

  • 旁白:* 为了分析为什么你会在301重定向中的一个上看到这个头,我们需要看看重定向是在哪里/如何实现的,以及你是否有其他代码可以设置这个头。

header指令的默认 conditiononsuccess,这意味着仅在2xx个响应上设置头。要在所有响应上设置头,包括3xx(重定向)和4xx(未找到),则需要使用alwayscondition
例如:

Header always set X-Robots-Tag "BadBot: noindex"
  • 旁白:* 这里不需要使用add; set是首选,因为您只想设置此头一次。

相关问题