J'ai cette configuration d'hôte virtuel comme la première d'une liste d'hôtes virtuels. C'est
<VirtualHost localhost:80>
ServerName localhost
DocumentRoot "/www/drupal5"
<Location /server-status>
SetHandler server-status
Order Deny,Allow
Allow from localhost
</Location>
</VirtualHost>
Les autres hôtes virtuels sont ci-dessous et exprimés en *: 80.
Lorsque http://localhost/server-status
j'inclus DocumentRoot dans cet hôte virtuel, les requêtes sur le serveur pour toujours frapper /index.php via les règles de réécriture dans /www/drupal5/.htaccess. Si je supprime la déclaration DocumentRoot, les demandes / server-status fonctionnent correctement, mais le site n'est pas du tout disponible http://localhost/
.
Comment puis-je me rendre http://localhost/server-status
au travail ainsi que le site de chargement http://localhost/
?
/www/drupal5/.htaccess
? Avec un peu de chance, il est possible de modifier les règles de réécriture afin que les requêtes pour / server-status ne soient pas réécrites.Réponses:
J'ai trouvé la solution lorsque j'ai googlé «server-status mod_rewrite». Par coïncidence, il a été répondu dans un forum drupal: http://drupal.org/node/52511
L'ajout
RewriteCond %{REQUEST_URI} !=/server-status
à la règle de réécriture pour rediriger tout le trafic vers /index.php l'a corrigé.Très déroutant que mod_rewrite peut réécrire un uri qui a déjà défini un gestionnaire.
la source
Si vous utilisez Apache 2.3 ou supérieur, vous devriez également pouvoir utiliser l'
END
indicateur dans votre entrée VirtualHost, pour éviter d'avoir à modifier les fichiers .htaccess.Devrait empêcher les règles suivantes de réécrire les choses.
la source
Ajoutez simplement une entrée vhost vierge en haut du fichier de configuration vhost, par exemple
la source