Назад | Перейти на главную страницу

Конфигурация Nginx robots.txt

Кажется, я не могу правильно настроить nginx для возврата содержимого robots.txt. В идеале мне не нужен файл, и я просто хочу обслуживать текстовый контент, настроенный непосредственно в nginx. Вот мой конфиг:

server {
    listen 80 default_server;
    listen [::]:80 default_server ipv6only=on;

    root /usr/share/nginx/html;
    index index.html index.htm;

    server_name localhost;

    location = /robots.txt {
        #return 200 "User-agent: *\nDisallow: /";
        #alias /media/ws/crx-apps/eap/welcome-content/robots.txt;
        alias /usr/share/nginx/html/dir/robots.txt ;
    }

    location / {
        try_files $uri $uri/ =404;
    }
}

Ни одна из вещей в = /robots.txt местоположение работает, и я не понимаю почему. Доступ http://localhost/robots.txt дает 404. Однако http://localhost/index.html обслуживается правильно.

Обратите внимание, что я не менял никаких настроек nginx по умолчанию, полученных из apt-get install nginx помимо добавления новой локации (для тестирования).

Во-первых, я думаю, что проблема в вашей конфигурации - это регулярное выражение, используемое для сопоставления. Было бы очень полезно написать такую ​​инструкцию в своей конфигурации, чтобы предотвратить возможные ошибки с сопоставлением с образцом:

    location = /robots.txt {
    alias /usr/share/nginx/html/dir/robots.txt;
} 

Во-вторых, вы также должны проверить разрешения и эффективного владельца /usr/share/nginx/html/dir/robots.txt