【问题标题】:Using .htaccess to override existing "noindex, nofollow" X-Robots-Tag header?使用 .htaccess 覆盖现有的“noindex,nofollow”X-Robots-Tag 标头?
【发布时间】:2020-07-23 20:55:12
【问题描述】:

我正在尝试设置 X-Robots-Tag 以允许 Googlebot 为我的网站编制索引。我没有robots.txt 文件,并且在我的任何html 文件中都没有与X-Robots-Tag 相关的任何元标记。 Apache 服务器正在返回一个标头,其中 X-Robots-Tag 设置为 "noindex, nofollow"。如何通过编辑.htaccess 文件取消设置此标签?

这是我在使用 Chrome 插件“机器人排除检查器”时得到的:

X-Robots status BLOCKED noindex,nofollow.

Date: Thu, 23 Jul 2020 20:27:46 GMT
Content-Type: text/html
Content-Length: 1272
Connection: keep-alive
Keep-Alive: timeout=30
Server: Apache/2
X-Robots-Tag: noindex, nofollow
Last-Modified: Fri, 09 Mar 2018 19:26:43 GMT
ETag: "ae0-xxxxxxxxxx-gzip"
Accept-Ranges: bytes
Vary: Accept-Encoding
Content-Encoding: gzip
Cache-Control: max-age=3600
Expires: Thu, 23 Jul 2020 21:27:46 GMT

我的.htaccess 文件的内容:

# compress text, html, javascript, css, xml:
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript

# Or, compress certain file types by extension:
<files *.html>
SetOutputFilter DEFLATE
</files>

Header onsuccess unset X-Robots-Tag
Header always set X-Robots-Tag "index,follow"

我已尝试将其添加到 .htaccess 文件的底部:

<files *.html>
Header set X-Robots-Tag "index,follow"
</files>

然后我从 Chrome 扩展程序中得到这个响应:

X-Robots BLOCKED noindex,nofollow,index,follow.

(注意它在下面的列表中出现了两次。)

Date: Thu, 23 Jul 2020 20:39:42 GMT
Content-Type: text/html
Content-Length: 1272
Connection: keep-alive
Keep-Alive: timeout=30
Server: Apache/2
X-Robots-Tag: noindex, nofollow
Last-Modified: Fri, 09 Mar 2018 19:26:43 GMT
ETag: "ae0-xxxxxxxxxxxxx-gzip"
Accept-Ranges: bytes
Vary: Accept-Encoding
Content-Encoding: gzip
Cache-Control: max-age=3600
Expires: Thu, 23 Jul 2020 21:39:42 GMT
X-Robots-Tag: index,follow

有没有办法删除原来的X-Robots-tag 标头并用新标头替换?我试过Header unset X-Robots-Tag,但不行(仍然显示“BLOCKED noindex,nofollow”)。


解决方案:对我有用的是包含 robots.txt 文件并确保所有超链接都以斜杠结尾。似乎没有斜杠,我得到一个 301 重定向,其中包括有问题的 noindex,nofollow 标头。

【问题讨论】:

  • "如何通过编辑 .htaccess 文件取消设置此标签?" - 你真的不需要 - 你需要首先找到这个标题的设置位置。 “Apache 服务器正在返回一个标头” - 是的,但很可能是您的应用程序设置此标头。
  • 我的 index.html 页面非常非常简单,只有正文内的超链接指向网站的其他部分。 主页 ...
  • 您的服务器配置中有什么? X-Robots-Tag 不会自行设置 - 它必须在配置中的某处显式设置。你有什么样的主机?
  • @MrWhite 该网站托管在 freeyellow 上。这是服务器信息的链接:mwganson.freeyellow.com/cgi-bin/server_information.php,但我没有看到与 x-robots-tag 相关的任何内容。我在所有文件中搜索了“robots”、“noindex”和“nofollow”,但一无所获。

标签: .htaccess x-robots-tag


【解决方案1】:

我的 index.html 页面非常非常简单,只有正文中的超链接指向网站的其他部分。
该网站托管在...

正如 cmets 中所述,您应该首先确定设置此标头的源,而不是尝试覆盖(或取消设置)它。这不是 Apache 默认做的事情,这个头文件必须在某处显式设置。

如果您没有设置此标头(在您的服务器端脚本或文件系统路径上的任何.htaccess 文件中 - 甚至在文档根目录上方),则必须在 vHost/server 配置中进行设置。如果您无权访问服务器配置,那么您应该联系您的虚拟主机以查看问题所在。

<files *.html>
Header set X-Robots-Tag "index,follow"
</files>

这通常会“工作”,除非之前在always 响应标头表中设置了标头。在这种情况下,您也需要这样做。例如:

Header always set X-Robots-Tag "index,follow"

您不应该需要 &lt;Files&gt; 包装器 - 除非您特别想针对仅映射到 *.html 文件的请求?我想在每个请求(例如图像和其他静态资源)上设置“noindex,nofollow”标头。

但是,您不需要显式设置“index,follow” - 因为这是搜索引擎执行的默认行为,无论是否设置了标头。因此,在这种情况下,您只需要 unset 标题(正如您也建议的那样),但同样,您需要使用 always 标题表(如果那是标题设置为开头)。例如:

Header always unset X-Robots-Tag

“always”表的命名可能有点误导,因为上面看起来(对于不经意的读者)标题可能 always 未设置(而不是 sometimes) - 但事实并非如此。有两个单独的响应头组/表:“always”和“onsuccess”(默认)。两者是互斥的。不同之处在于“总是”组总是应用 - 即使在错误和内部重写/子请求上也是如此。默认组不是。

参考:
https://httpd.apache.org/docs/2.4/mod/mod_headers.html#header

【讨论】:

  • 顺便说一句,您还在“服务器信息页面”上设置了“索引,关注”标题 - 这显然是您不希望索引的内容(事实上,它不应该在全部)。虽然该页面还有一个“noindex”HTML 元标记,但 HTTP 响应标头将具有优先权。
  • 我尝试了总是设置和总是未设置的建议,但都没有奏效。我注意到我用来测试的 chrome 扩展显示 robots.txt 文件的格式不正确。我什至没有 robots.txt 文件,所以我添加了一个。这对 googlebot 来说似乎已经足够好了,但我正在等待查看 google 搜索控制台验证的结果。 chrome 扩展程序仍将 x-robots 状态显示为已阻止。如果验证成功,我会回来并标记为已解决。
  • 还是不行。从搜索控制台请求使用 google 的 URL 检查建立索引时得到了这个:允许索引? “否:在‘X-Robots-Tag’http 标头中检测到‘noindex’”这一定是我无法控制的。
  • 您具体测试/提交哪个网址?这与您在上面对您的问题的评论中发布的网站有关吗? robots.txt 是一个单独的东西——如果你想要一个站点被索引,你并不需要一个 robots.txt 文件,但如果你没有一个,你会得到一个 404s 的飞溅。单个 Disallow:(无斜线)指令优于 Allow: / - 但它并不重要。
  • 同一个站点,是的。我认为没有 robots.txt 并且没有任何元标记是要走的路,但添加 robots.txt 文件至少让 chrome 扩展很开心。但是当我尝试提交索引时,谷歌仍然坚持将 X-Robots-Tag 设置为“noindex”。
猜你喜欢
  • 2020-08-06
  • 2017-10-05
  • 2012-11-01
  • 2019-12-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-09-24
  • 2013-07-29
相关资源
最近更新 更多