Есть ли способ заменить файл robots.txt в nginx на основе имени хоста? В настоящее время у меня www.domain.com и backup.domain.com указывают на один и тот же сервер nginx, но я не хочу, чтобы Google индексировал backup.domain.com.
Два варианта:
if
заявление на основе $http_host
который перезаписывается в один из двух текстовых файлов на сервере.Есть правильный способ с карта
map $http_host $examplecom_robotstxt {
hostnames;
default robotstxt/development.txt;
example.com robotstxt/production.txt;
}
server {
...
location = /robots.txt {
rewrite .* /$examplecom_robotstxt break;
}
...
}
Обратите внимание, что определение карты должно быть вне определения сервера.
Для справки, это синтаксис, который я использовал:
if ($http_host != "www.domain.com") {
rewrite ^/robots.txt /robots-backup.txt last;
}
Это было внутри блока локации