nginx robots.txt

¿Cómo configuro nginx para redirigir a una url para robots.txt & sitemap.xml?



(6)

Creo que quieres configurar una ubicación. La parte clave es la directiva "=".

location = /robots.txt { alias /your_full_path/robots.txt ; }

(Cuando no incluí el =, todavía iba a la ubicación predeterminada de la raíz nginx)

Si se configura de la siguiente manera, todas las solicitudes de /robots.txt* se leerán en / var / foo. Entonces, /robots.txt.bing intenta leer /var/foo/robots.txt.bing fuera del disco. El "^ ~" indica que es una coincidencia de expresión regular al principio de la solicitud.

location ^~ /robots.txt { root /var/foo; }

Estoy ejecutando nginx 0.6.32 como una interfaz de usuario para couchdb. Tengo mi robots.txt en la base de datos, accesible en http://www.example.com/prod/_design/mydesign/robots.txt . También tengo mi sitemap.xml que se genera dinámicamente, en una url similar.

He intentado la siguiente configuración:

server { listen 80; server_name example.com; location / { if ($request_method = DELETE) { return 444; } if ($request_uri ~* "^/robots.txt") { rewrite ^/robots.txt http://www.example.com/prod/_design/mydesign/robots.txt permanent; } proxy-pass http://localhost:5984; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }

Esto parece funcionar como una redirección, pero ¿hay una forma más simple?


Esto debería funcionar también, y puede funcionar un poco mejor.

location /robots.txt { alias /var/www/django/mysite/static/robots.txt; }


O puede ponerlo simplemente en su propia ubicación -

location /robots.txt { alias /Directory-containing-robots-file/robots.txt; }


Tenga en cuenta que el primer parámetro es una expresión regular, por lo que probablemente debería escapar. y emparejar el final de la línea.

location / { rewrite ^/robots/.txt$ /static/robots.txt last; ... }

NginxHttpRewriteModule


Teniendo en cuenta que robots.txt se encuentra en /var/www/mysite/static/robots.txt , lo siguiente funcionó para mí:

location = /robots.txt { root /var/www/mysite/static/; }


reescribir con http: // ... está habilitado para hacer la redirección. Probablemente estés buscando:

rewrite ^/robots.txt /prod/_design/mydesign/robots.txt last;