根据主机名动态 robots.txt

根据主机名动态 robots.txt

有没有办法根据主机名在 nginx 中交换 robots.txt 文件?我目前有 www.domain.com 和 backup.domain.com 指向同一个 nginx 服务器,但我不希望 Google 索引 backup.domain.com。

答案1

两个选项:

  1. if基于此的语句将$http_host重写为后端的两个文本文件之一。
  2. 将 robots.txt 重写为相应响应的动态脚本(robots.php 等)。

答案2

有一个正确的方法地图

map $http_host $examplecom_robotstxt {
  hostnames;
  default robotstxt/development.txt;
  example.com robotstxt/production.txt;
}

server {
  ...
  location = /robots.txt {
    rewrite .* /$examplecom_robotstxt break;
  }
  ...
}

请注意,地图定义应该位于服务器定义之外。

答案3

作为参考,这是我使用的语法:

if ($http_host != "www.domain.com") {
    rewrite ^/robots.txt /robots-backup.txt last;
}

这是在位置块内

相关内容