configuração do Nginx robots.txt

4

Não consigo configurar corretamente o nginx para retornar o conteúdo do robots.txt. Idealmente, não preciso do arquivo e apenas quero servir conteúdo de texto configurado diretamente no nginx. Aqui está minha configuração:

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;
    }
}

Nenhuma das coisas em = /robots.txt location funciona e não entendo por quê. Acessar http://localhost/robots.txt fornece 404. No entanto, http://localhost/index.html é exibido corretamente.

Note que eu não alterei nenhuma configuração padrão de nginx obtida de apt-get install nginx além de adicionar um novo local (para teste).

    
por Denys S. 15.07.2015 / 12:10

1 resposta

1

Primeiramente, acho que o problema na sua configuração é a expressão regular usada para correspondência. Seria muito útil escrever uma declaração como essa em sua configuração para evitar possíveis erros com a correspondência de padrões:

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

Em segundo lugar, você também deve verificar as permissões e o proprietário efetivo de /usr/share/nginx/html/dir/robots.txt

    
por 15.07.2015 / 12:44