我已取消注释默认部分:
<Location /server-status> SetHandler server-status Order deny,allow Deny from all Allow from 127.0.0.1 </Location>
然后重新启动apache('语法OK')
当我运行links http://127.0.0.1/server-status我看到404 eror页面。
# apachectl -S VirtualHost configuration: wildcard NameVirtualHosts and _default_ servers: _default_:443 site.com (/etc/httpd/conf.d/ssl.conf:74) *:80 is a NameVirtualHost default server site.com (/etc/httpd/sites-enabled/www.site.com.conf:1) port 80 namevhost site.com (/etc/httpd/sites-enabled/www.site.com.conf:1) alias www.site.com Syntax OK
此外,我试图将'Location'块插入<VirtualHost>并使用域名而不是127.0.0.1但没有运气。
我通过故意input不正确的指令检查了我正确的configuration文件,这是正确的文件。
我究竟做错了什么?
我有同样的问题,它看起来像原因是类似的:我的应用程序具有以下的.htaccess文件:
RewriteEngine on RewriteCond %{SCRIPT_FILENAME} !-f RewriteRule ^(.*)$ index.php [NC,L]
这优先于位置部分。 它将重写所有不指向实际文件的URL,这包括服务器状态。 通过在RewriteRule之前添加另一个RewriteCond,我可以修复它:
RewriteCond %{REQUEST_URI} !=/server-status
另一种方法是添加一个别名,将您的服务器状态URL映射到不同的目录,一个不使用.htaccess文件的目录。 这似乎甚至可以是一个不存在的目录:
Alias /server-status /tmp/dummy