我将这个虚拟主机设置为虚拟主机列表中的第一个。 它是
<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]
应该防止后来的规则重写东西。