Apache 2.2 startet nicht mit einer IPv6-Adresse

Apache 2.2 startet nicht mit einer IPv6-Adresse

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.logund 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 dieListenDirektive. 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:8080ist ungültig, da es sowohl Listen [2001:db8::1]:8080als auch bedeuten könnte Listen [2001:db8::1:8080]. Die Klammern machen es deutlich.

Für dieAllow fromDies 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:8080ist sie nie mehrdeutig. Es handelt sich immer um eine IPv6-Adresse 2001:db8::1:8080.

Wenn Sie die Klammern () weglassen, Allow from ::1sollte 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

verwandte Informationen