【问题标题】:Prevent google from indexing "deny_all" = error 403防止谷歌索引“deny_all”=错误403
【发布时间】:2019-01-24 08:24:37
【问题描述】:

例如,我有一个我不希望谷歌索引的目录(它已经被索引),它是 example.com/img

然后在我的 Ngnix 配置中我使用:

location ~ /\.(?!well-known).* {
    deny all;
}

返回没有标题的 403 错误。

我阅读了有关添加标题的信息,例如:

add_header X-Robots-Tag "noindex, nofollow, nosnippet, noarchive";

但我发现它们没有附加到 403 错误。

那么,我怎样才能阻止谷歌索引呢?

附:我已经有机器人拒绝该目录,但谷歌搜索控制台说它必须用 noindex 修复。

【问题讨论】:

  • 403 被索引的确切问题是什么?
  • @Rafael 是的,这是第一个问题,第二个是谷歌控制台告诉我我必须修复机器人以允许该 403 页面或添加 noindex 以便他们可以删除它
  • "你也可以在你的...中返回一个值为 noindex 或 none 的 X-Robots-Tag 标头"
  • @Rafael 是的,但是 add_header X-Robots-Tag 与错误 403 不兼容
  • 你从来没有提到你的目录路径,但是那个正则表达式看起来很传统,你是故意的吗?

标签: nginx indexing


【解决方案1】:

听起来您不想返回 403,而是想修改响应以使此 X-Robots-Tag 标头的值为 noindex 或 none(根据 Block search indexing with 'noindex'):

location ~ /\.(?!well-known).* {
    add_header "X-Robots-Tag" "none";
}
  1. 删除deny 指令
  2. 添加add_header 指令

Read more @ Module ngx_http_headers_module

【讨论】:

  • 谢谢!这是正确的方法吗?我不确定会返回什么类型的错误,200?因为如果不应该是 200 不?
  • 如果您想要一个全局解决方案,只需将上面的add_header 指令语句放在您的httpserver 块中。它将修改每个响应以具有该标题,并且谷歌不会索引任何内容。
  • 那是另一种解决方案,但我会将整个网络取消索引:(
  • 我以为你刚刚说你想要一个“全球解决方案”?如果您不想要全局解决方案,则需要在 location 上下文中仅修改其中的响应。
  • 是的,如果您需要定位特定位置,read here
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多