J'essaie de définir robots.txt
pour tous les hôtes virtuels sous le serveur http nginx. J'ai pu le faire dans Apache en mettant les éléments suivants en principal httpd.conf
:
<Location "/robots.txt">
SetHandler None
</Location>
Alias /robots.txt /var/www/html/robots.txt
J'ai essayé de faire quelque chose de similaire avec nginx en ajoutant les lignes ci-dessous (a) dans nginx.conf et (b) comme include conf.d / robots.conf
location ^~ /robots.txt {
alias /var/www/html/robots.txt;
}
J'ai essayé avec '=' et je l'ai même mis dans l'un des hôtes virtuels pour le tester. Rien ne semblait fonctionner.
Qu'est-ce que j'oublie ici? Existe-t-il un autre moyen d'y parvenir?
nginx
robots.txt
anup
la source
la source
Réponses:
l'emplacement ne peut pas être utilisé à l'intérieur du
http
bloc. nginx n'a pas d'alias globaux (c'est-à-dire des alias qui peuvent être définis pour tous les vhosts). Enregistrez vos définitions globales dans un dossier et incluez-les.la source
Vous pouvez définir le contenu du fichier robots.txt directement dans la configuration nginx:
Il est également possible d'ajouter le bon type de contenu:
la source
location = /robots.txt
(Notez le signe égal) sinon une autrelocation ~* \.(txt|log)$
correspondance en dessous la remplaçait.conf.d/robots.conf
? De même que la directive "location" n'est pas autorisée ici , ce qui est raisonnable, mais ce n'est pas pour un serveur particulier. Je ne suis pas sûr de la réponse de @ user79644 à cela. Est-il inévitable d'ajouter cela à chaque site?Y a-t-il d'autres règles qui sont définies? Peut-être common.conf ou un autre fichier de conf inclus qui remplace votre configuration. L'un des éléments suivants devrait certainement fonctionner.
la source
/robots.txt
fichier à alias. Je n'ai pas eu laroot
possibilité de travailler.J'ai eu le même problème avec les défis d'acme, mais le même principe s'applique également à votre cas.
Ce que j'ai fait pour résoudre ce problème était de déplacer tous mes sites vers un port non standard, j'ai choisi
8081
et créé un serveur virtuel à l'écoute sur le port 80. Il envoie toutes les demandes par proxy127.0.0.1:8081
, sauf celles à .well-known. Cela agit presque comme un alias global, avec un bond supplémentaire, mais cela ne devrait pas entraîner une baisse significative des performances en raison de la nature asynchrone de nginx.la source