Ich habe dieses virtuelle Host-Setup als erstes in einer Liste von virtuellen Hosts. Es ist
<VirtualHost localhost:80>
ServerName localhost
DocumentRoot "/www/drupal5"
<Location /server-status>
SetHandler server-status
Order Deny,Allow
Allow from localhost
</Location>
</VirtualHost>
Der Rest der virtuellen Hosts ist unten aufgeführt und wird als *: 80 ausgedrückt.
Wenn ich DocumentRoot in diesen virtuellen Host einbinde, fordert der Server auf, http://localhost/server-status
immer /index.php durch Umschreiberegeln in /www/drupal5/.htaccess zu drücken. Wenn ich die DocumentRoot-Deklaration entferne, funktionieren / server-status-Anforderungen einwandfrei, aber die Site ist überhaupt nicht verfügbar http://localhost/
.
Wie kann ich http://localhost/server-status
zur Arbeit kommen und die Site laden http://localhost/
?
/www/drupal5/.htaccess
? Hoffentlich ist es möglich, die Umschreiberegeln so zu ändern, dass Anforderungen für / server-status nicht neu geschrieben werden.Antworten:
Ich habe die Lösung gefunden, als ich 'Serverstatus mod_rewrite' gegoogelt habe. Zufälligerweise wurde es in einem Drupal-Forum beantwortet: http://drupal.org/node/52511
Das Hinzufügen
RewriteCond %{REQUEST_URI} !=/server-status
zur Umschreiberegel zum Umleiten des gesamten Datenverkehrs zu /index.php hat das Problem behoben.Sehr verwirrend, dass mod_rewrite eine URL umschreiben kann, die bereits einen Handler gesetzt hat.
quelle
Wenn Sie Apache 2.3 oder höher verwenden, sollten Sie auch das
END
Flag in Ihrem VirtualHost-Eintrag verwenden können, um zu vermeiden, dass Sie die .htaccess-Dateien ändern müssen.Sollte verhindern, dass die nachfolgenden Regeln Dinge umschreiben.
quelle
Fügen Sie einfach einen leeren vhost-Eintrag oben in die vhost-Konfigurationsdatei ein, z
quelle