2016-12-20 1 views
1

Nginx akzeptiert abschließenden Punkt (z. B. example.tld.). Die Regex hat Anfang und Ende von server_name gesetzt, siehe unten.Nginx akzeptiert abschließenden Punkt, wenn Servername Regex nicht übereinstimmt

server_name ~^example.tld$; 

Die server_name Regex passt nicht example.tld. aber nginx Spiele in dieser vhost. Ich habe this question about redirecting trailing dot Frage gefunden, aber es ist so etwas wie Workaround, nicht wahr?

Ich frage mich, warum Nginx passt Vhost auch während die Regex nicht übereinstimmt? Ist es eine Art interner Logik, die auf RFC-Standards basiert?

+0

Wenn meine Antwort die Frage beantwortet, bitte eine Chance, eine +1 zu bekommen, bitte? Vielen Dank! – cnst

Antwort

1

Ja, ich glaube, es stammt von dem schleppenden Punkt, der die Standard-DNS-Notation ist, die einen vollständig qualifizierten Domänennamen (FQDN) angibt. In einer BIND-kompatiblen Zonendatei ist jeder Name ohne nachgestellten Punkt relativ zu .

ähnlich ist das gleiche für resolv.conf geht, wo, wenn es search online.net enthält, dann stattdessen console.online.net. gehen Sie einfach nur console gehen können (OTOH, zu console. gehen wird nicht funktionieren, da diese Root-Zone ‚doesn t existieren derzeit (ich weiß - ich war eigentlich selbst sehr überrascht, dass keine Registry eine so tolle TLD-Zone aufgenommen hat ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^)

Als solche wird der abschließende Punkt automatisch aus der Zeichenkette entfernt, die als der Host angesehen wird, wie nginx server name regex when "Host" header has a trailing dot, die vor der Ausführung der Regex im Rahmen der server_name Direktive, daher wird der nachfolgende Punkt niemals übereinstimmen.

Verwandte Themen