Ich versuche, den lokalen Host nur für einen bestimmten Ordner zuzulassen. Mit IPv4 ( Allow from 127.0.0.1
) funktioniert das einwandfrei. Sobald ich jedoch IPv6 ( Allow from [::1]
) hinzufüge, startet mein Apache nicht mehr.
Ich habe es überprüft error.log
und da steht:
Die angegebene IP-Adresse ist ungültig.
Ich habe die IPv6-Adresse bereits ohne das komprimierte Format eingegeben, hat auch nicht funktioniert.
Ich verwende Apache 2.2.25, Windows 8.1. IPv6 ist auf meinem Computer aktiviert.
Antwort1
Die Notation, bei der Sie die IPv6-Adresse in Klammern setzen, wird nur in Fällen verwendet, in denen es zu einer Verwechslung zwischen der Adresse und einer optionalen Portnummer kommen könnte.
Ein Beispiel hierfür ist dieListen
Direktive. Da sie sowohl eine Adresse als auch einen Port angeben kann, müssen die Klammern hinzugefügt werden, um Verwirrung zu vermeiden: Listen 2001:db8::1:8080
ist ungültig, da es sowohl Listen [2001:db8::1]:8080
als auch bedeuten könnte Listen [2001:db8::1:8080]
. Die Klammern machen es deutlich.
Für dieAllow from
Dies ist bei der Direktive nicht der Fall. Bei der Angabe einer Adresse handelt es sich immer um eine Adresse ohne Portnummer. Daher Allow from 2001:db8::1:8080
ist sie nie mehrdeutig. Es handelt sich immer um eine IPv6-Adresse 2001:db8::1:8080
.
Wenn Sie die Klammern () weglassen, Allow from ::1
sollte es funktionieren.
Antwort2
Ihr virtueller Host muss wie folgt definiert werden, <VirtualHost *:80>
um den Zugriff sowohl für IPv4 als auch für IPv6 zu ermöglichen.
Außerdem verwendet die Apache-Dokumentation dieses Format für die IPv6-Einschränkung:
Allow from 2001:db8::a00:20ff:fea7:ccea
Apache-Dokumentation