Come impostare robots.txt globalmente in nginx per tutti gli host virtuali

Sto cercando di impostare robots.txt per tutti gli host virtuali sotto http server nginx. Sono stato in grado di farlo in Apache mettendo i seguenti nella httpd.conf principale:

 <Location "/robots.txt"> SetHandler None </Location> Alias /robots.txt /var/www/html/robots.txt 

Ho provato a fare qualcosa di simile con nginx aggiungendo le righe riportte di seguito (a) all'interno di nginx.conf e (b) come include conf.d / robots.conf

  • Reverse proxy HTTPS da nginx a Apache
  • Nginx: Ottima map_hash_max_size e map_hash_bucket_size per la mappa 1M?
  • errore nginx proxy + ssl + clr "400 bad request"
  • Vale la pena utilizzare Nginx per i file statici dell'applicazione Node.js?
  • Qualsiasi autorità di certificazione support sia la SAN che le wildcard?
  • Come sospendere le richieste Nginx durante gli aggiornamenti del backend
  •  location ^~ /robots.txt { alias /var/www/html/robots.txt; } 

    Ho provato con '=' e anche messo in uno degli host virtuali per testarlo. Niente sembrava funzionare.

    Cosa mi manca qui? C'è un altro modo per raggiungere questo objective?

  • Permettendo richieste di origine incrociata (CORS) su Nginx per 404 risposte
  • La direttiva NGINX "client_max_body_size" non funziona all'interno del block "location"
  • "La connessione non è compressa" da Chrome con SSL
  • Nginx webdav non mostra file / cartelle con caratteri speciali
  • Nginx come proxy inverso: come configurare correttamente il timeout del gateway?
  • nginx: posso mostrare l'output di un command di shell su un URL specifico?
  • 3 Solutions collect form web for “Come impostare robots.txt globalmente in nginx per tutti gli host virtuali”

    Esistono altre regole definite? Forse common.conf o un altro file conf contenuto, che è sopra il tuo config. Uno dei seguenti dovrebbe funzionare definitivamente.

     location /robots.txt { alias /home/www/html/robots.txt; } location /robots.txt { root /home/www/html/; } 
    1. Nginx gestisce tutte le posizioni "regexp" in ordine al loro aspetto. Se una posizione di "regexp" riesce, Nginx utilizzerà questa prima partita. Se la posizione "regexp" non è rioutput, Nginx utilizza la posizione ordinaria trovata nel passaggio precedente.
    2. Le posizioni "regexp" hanno la precedenza sulle posizioni "prefisso"

    È ansible impostare il contenuto del file robots.txt direttamente nella config di nginx:

      location /robots.txt { return 200 "User-agent: *\nDisallow: /\n"; } 

    È inoltre ansible aggiungere il tipo di contenuto corretto:

      location /robots.txt { add_header Content-Type text/plain; return 200 "User-agent: *\nDisallow: /\n"; } 

    la posizione non può essere utilizzata all'interno del block http . nginx non ha alias globali (ovvero alias che possono essere definiti per tutti i vhost). Salvare le definizioni globali in una cartella e includere quelle.

     server { listen 80; root /var/www/html; include /etc/nginx/global.d/*.conf; } 
    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.