Ich versuche, robots.txt
für alle virtuellen Hosts unter nginx http server festzulegen. Ich konnte es in Apache tun, indem ich Folgendes in main einfügte httpd.conf
:
<Location "/robots.txt">
SetHandler None
</Location>
Alias /robots.txt /var/www/html/robots.txt
Ich habe versucht, etwas Ähnliches mit nginx zu tun, indem ich die folgenden Zeilen (a) in nginx.conf und (b) als conf.d / robots.conf hinzugefügt habe
location ^~ /robots.txt {
alias /var/www/html/robots.txt;
}
Ich habe es mit '=' versucht und es sogar in einen der virtuellen Hosts gestellt, um es zu testen. Nichts schien zu funktionieren.
Was fehlt mir hier? Gibt es einen anderen Weg, um dies zu erreichen?
nginx
robots.txt
anup
quelle
quelle
Antworten:
Der Standort kann nicht innerhalb des
http
Blocks verwendet werden. nginx hat keine globalen Aliase (dh Aliase, die für alle vhosts definiert werden können). Speichern Sie Ihre globalen Definitionen in einem Ordner und fügen Sie diese hinzu.quelle
Sie können den Inhalt der robots.txt-Datei direkt in der nginx-Konfiguration festlegen:
Es ist auch möglich, den richtigen Inhaltstyp hinzuzufügen:
quelle
location = /robots.txt
(beachten Sie das Gleichheitszeichen), sonst wurde eine anderelocation ~* \.(txt|log)$
Übereinstimmung darunter überschrieben.conf.d/robots.conf
? Die Direktive "location" ist hier nicht zulässig , was sinnvoll ist, aber nicht für einen bestimmten Server. Ich bin mir nicht sicher, ob @ user79644 darauf antwortet. Ist es unvermeidlich, dies jeder Site hinzuzufügen?Gibt es andere Regeln, die definiert sind? Möglicherweise ist die Datei common.conf oder eine andere Conf-Datei enthalten, die Ihre Konfiguration überschreibt. Eine der folgenden sollte auf jeden Fall funktionieren.
quelle
/robots.txt
Alias-Datei haben. Ich hatte keineroot
Möglichkeit zu arbeiten.Ich hatte das gleiche Problem mit den Acme-Herausforderungen, aber das gleiche Prinzip gilt auch für Ihren Fall.
Um dieses Problem zu lösen, habe ich alle meine Sites auf einen nicht standardmäßigen Port verschoben. Ich habe
8081
einen virtuellen Server ausgewählt und erstellt, der Port 80127.0.0.1:8081
überwacht. Er überträgt alle Anforderungen an , mit Ausnahme derjenigen an .well-bekannt. Dies fungiert fast als globaler Alias mit einem zusätzlichen Hop, aber dies sollte aufgrund der asynchronen Natur von Nginx keinen signifikanten Leistungsabfall verursachen.quelle