Я пытаюсь установить robots.txt
для всех виртуальных хостов под nginx http-сервер. Я смог сделать это в Apache, поставив в основном следующее httpd.conf
:
<Location "/robots.txt">
SetHandler None
</Location>
Alias /robots.txt /var/www/html/robots.txt
Я попытался сделать что-то похожее с nginx, добавив приведенные ниже строки (a) в nginx.conf и (b), включая include.d / robots.conf
location ^~ /robots.txt {
alias /var/www/html/robots.txt;
}
Я попытался с '=' и даже поместил его в один из виртуальных хостов, чтобы проверить это. Казалось, ничего не работает.
Что мне здесь не хватает? Есть ли другой способ добиться этого?
nginx
robots.txt
Anup
источник
источник
Ответы:
местоположение не может быть использовано внутри
http
блока. У nginx нет глобальных псевдонимов (то есть псевдонимов, которые могут быть определены для всех vhosts). Сохраните ваши глобальные определения в папке и включите их.источник
Вы можете установить содержимое файла robots.txt непосредственно в конфигурации nginx:
Также возможно добавить правильный Content-Type:
источник
location = /robots.txt
(обратите внимание на знак равенства), иначе еще одноlocation ~* \.(txt|log)$
совпадение было ниже его.conf.d/robots.conf
? Так как директива location не разрешена , это разумно, но не для конкретного сервера. Я не уверен насчет @ user79644 ответа на этот вопрос. Это неизбежно, чтобы добавить это к каждому сайту?Есть ли другие правила, которые определены? Может быть, common.conf или другой conf-файл во включенном файле, который переопределяет вашу конфигурацию Одно из следующего должно определенно работать.
источник
/robots.txt
файл для псевдонима. У меня не былоroot
возможности работать.У меня была та же проблема с вызовами acme, но тот же принцип применим и к вашему делу.
Чтобы решить эту проблему, я переместил все свои сайты на нестандартный порт, который я выбрал
8081
, и создал виртуальный сервер, прослушивающий порт 80. Он передает все запросы127.0.0.1:8081
, кроме тех, которые относятся к .well-known. Это действует почти как глобальный псевдоним, с одним дополнительным прыжком, но это не должно вызывать значительного падения производительности из-за асинхронной природы nginx.источник