我如何在Apache虚拟主机中使用DocumentRoot和服务器状态?

我将这个虚拟主机设置为虚拟主机列表中的第一个。 它是

<VirtualHost localhost:80> ServerName localhost DocumentRoot "/www/drupal5" <Location /server-status> SetHandler server-status Order Deny,Allow Allow from localhost </Location> </VirtualHost> 

其余的虚拟主机在下面,表示为*:80。

当我在这个虚拟主机中包含DocumentRoot时,服务器上http://localhost/server-status请求总是通过/www/drupal5/.htaccess中的重写规则来打击/index.php。 如果我删除DocumentRoot声明,/服务器状态请求工作正常,但该网站根本不可用在http://localhost/

我怎么能得到http://localhost/server-status工作以及网站加载在http://localhost/

当我search'服务器状态mod_rewrite'find解决scheme。 巧合的是,这是在drupal论坛上回答的: http : //drupal.org/node/52511

RewriteCond %{REQUEST_URI} !=/server-status到重写规则中,以将所有通信redirect到/index.php。

非常容易混淆,mod_rewrite可以重写已经设置处理程序的uri。

只需将一个空白的虚拟主机条目添加到虚拟主机configuration文件的顶部即可

 <VirtualHost *:80> </VirtualHost> 

如果您使用的是Apache 2.3或更高版本,则还应该能够使用VirtualHost条目中的END标志来保存修改.htaccess文件。

 RewriteCond %{REQUEST_URI} /server-status RewriteRule ^ - [END] 

应该防止后来的规则重写东西。