Я хочу включить mod_status для себя в моем окне разработки Windows 10, где я запускаю Apache / 2.4.6. Я использую виртуальные хосты на основе имен, и у меня есть хост по умолчанию, который указывает на страницу «Сайт не существует»:
<VirtualHost *:80>
ServerName localhost
DocumentRoot "C:/Sites/Default/htdocs"
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>
Я загружаю все необходимые модули (mod_authz_core, mod_authz_host, mod_info и mod_status), но ни один из моих Require
директивы работали:
<Location /server-status>
SetHandler server-status
# AH01753: access check of 'localhost' to /server-info failed, reason: unable to get the remote host name
#Require host localhost
# AH01630: client denied by server configuration
Require ip 127.0.0.1
# ... but this:
Require all granted
</Location>
Даже предоставляя бесплатный доступ всем, я получал свой по умолчанию index.php
страница из-за наличия этого на моем хосте по умолчанию:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
У меня два вопроса:
Что-то не так в Require
директивы, запускающие AH01753 и AH01630?
Является RewriteRule
должен обойти SetHandler server-status
?
/ server-status не является файлом или каталогом, поэтому, если вы настаиваете на использовании mod_rewrite, по крайней мере, добавьте условие для этого URI, в противном случае такое поведение является нормальным.
RewriteCond %{REQUEST_URI} !^/server-status
Кстати, если вы зашли в:
FallBackResource /index.php
Теперь у вас не было бы этой проблемы. Это еще один пример использования mod_rewrite, когда он не нужен, вызывая путаницу.