Я пытаюсь разрешить доступ localhost только к определенной папке, все отлично работает с ipv4 ( Allow from 127.0.0.1
), но как только я добавляю ipv6 ( Allow from [::1]
), мой Apache больше не запускается.
Я проверил error.log
и там написано:
Указанный IP-адрес недействителен.
Я уже ввел адрес ipv6 без сжатого формата, тоже не сработало.
Я использую Apache 2.2.25, Windows 8.1. На моем компьютере включен IPv6.
решение1
Обозначение, при котором адрес IPv6 заключается в скобки, используется только в тех случаях, когда может возникнуть путаница между адресом и необязательным номером порта.
Одним из примеров являетсяListen
директива. Поскольку она может указывать как адрес, так и порт, необходимо добавить скобки, чтобы избежать путаницы: Listen 2001:db8::1:8080
недопустимо, поскольку может означать Listen [2001:db8::1]:8080
и Listen [2001:db8::1:8080]
. Скобки делают это явным.
ДляAllow from
директива это не так. При указании адреса это всегда адрес без номера порта. Поэтому Allow from 2001:db8::1:8080
никогда не бывает двусмысленным. Это всегда адрес IPv6 2001:db8::1:8080
.
Если убрать скобки ( Allow from ::1
), то все должно работать.
решение2
Ваш виртуальный хост должен быть определен следующим образом, <VirtualHost *:80>
что разрешает доступ как для ipv4, так и для ipv6.
Кроме того, в документации Apache используется следующий формат для ограничения IPv6:
Allow from 2001:db8::a00:20ff:fea7:ccea
Apache-документ