Я установил этот виртуальный хост как первый в списке виртуальных хостов. это
<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
всегда запрашивается /index.php через правила перезаписи в /www/drupal5/.htaccess. Если я удалю декларацию DocumentRoot, запросы / server-status будут работать нормально, но тогда сайт вообще не будет доступен http://localhost/
.
Как я могу получить http://localhost/server-status
работу, а также сайт для загрузки http://localhost/
?
/www/drupal5/.htaccess
? Надеемся, что можно изменить правила перезаписи, чтобы запросы / server-status не переписывались.Ответы:
Нашел решение, когда я погуглил 'server-status mod_rewrite'. По случайному совпадению, на форуме drupal ответили: http://drupal.org/node/52511
RewriteCond %{REQUEST_URI} !=/server-status
Исправлено добавление в правило перезаписи для перенаправления всего трафика в /index.php.Очень странно, что mod_rewrite может переписать URI, который уже установил обработчик.
источник
Если вы используете Apache 2.3 или выше, вы также должны иметь возможность использовать
END
флаг в вашей записи VirtualHost, чтобы избавить от необходимости изменять файлы .htaccess.Следует помешать последующим правилам переписывать вещи.
источник
Просто добавьте пустую запись vhost в начало файла конфигурации vhost, например
источник