Я включил mod_status для собственного использования под Apache / 2.4.6 в моем окне разработки Windows 10:
<Location /server-status>
SetHandler server-status
Require host localhost
Require host example
Require host example.com
Require ip 127.0.0.1
</Location>
(example
и example.com
представляют мое имя хоста Windows Active Directory.) Я также использую виртуальные хосты на основе имен, и у меня есть хост по умолчанию, который примерно выглядит так:
<VirtualHost *:80>
ServerName localhost
DocumentRoot "C:/Sites/Default/htdocs"
FallBackResource /index.php
ErrorLog "logs/localhost-error.log"
CustomLog "logs/localhost-access.log" common
<Directory "C:/Sites/Default/htdocs">
Require all granted
AllowOverride All
Options -Indexes
</Directory>
</VirtualHost>
... и отлично работает: любое имя хоста или IP-адрес, который явно не настроен, отображает мой PHP-процессор Сайт не существует страница ошибки, в том числе http://localhost/
.
Я могу получить доступ к информации о сервере через любой из размещенных сайтов или прямо через IP-адрес:
http://some.other.site.example.org/server-status
http://127.0.0.1/server-status
Однако, используя localhost
поскольку имя хоста вызывает код состояния 403 Forbidden:
http://localhost/server-status
AH01753: access check of 'localhost' to /server-status failed, reason: unable to get the remote host name
AH01753: access check of 'example' to /server-status failed, reason: unable to get the remote host name
AH01753: access check of 'example.com' to /server-status failed, reason: unable to get the remote host name
AH01630: client denied by server configuration: C:/Sites/Default/htdocs/server-status
Я пробовал удалить localhost
из ServerName
директива моего виртуального хоста по умолчанию, но я все еще получаю Запрещено.
Что вызывает localhost
быть исключением?
localhost
разрешается на IPv6-адрес, поэтому мне нужно добавить это:
Require ip ::1