¿Cómo puedo usar DocumentRoot y el estado del servidor dentro de un host virtual Apache?


8

Tengo esta configuración de host virtual como la primera de una lista de hosts virtuales. Está

<VirtualHost localhost:80>
ServerName localhost
DocumentRoot "/www/drupal5"

<Location /server-status>
    SetHandler server-status
    Order Deny,Allow
    Allow from localhost
</Location>
</VirtualHost>

El resto de los hosts virtuales están a continuación y se expresan como *: 80.

Cuando http://localhost/server-statusincluyo DocumentRoot en este host virtual, las solicitudes en el servidor siempre presionan /index.php a través de las reglas de reescritura en /www/drupal5/.htaccess. Si elimino la declaración de DocumentRoot, las solicitudes / server-status funcionan bien, pero el sitio no está disponible en absoluto http://localhost/.

¿Cómo puedo llegar http://localhost/server-statusal trabajo y al sitio para cargar http://localhost/?


¿Puedes publicar el contenido de /www/drupal5/.htaccess? Con suerte, es posible modificar las reglas de reescritura para que las solicitudes de / server-status no se reescriban.
Steven lunes

La aclaración que creo que necesito es: ¿es posible que mod_rewrite sobrescriba lo que sucede con una ruta / estado del servidor a pesar de que se haya manejado en <Location>

Respuestas:


12

Encontré la solución cuando busqué en Google 'server-status mod_rewrite'. Casualmente se respondió en un foro de drupal: http://drupal.org/node/52511

Agregar RewriteCond %{REQUEST_URI} !=/server-statusa la regla de reescritura para redirigir todo el tráfico a /index.php lo arregló.

Muy confuso que mod_rewrite puede reescribir una uri que ya ha configurado un controlador.


Gracias, funciona!
Luke Duda

3

Si está utilizando Apache 2.3 o superior, también debería poder usar el ENDindicador en su entrada VirtualHost, para evitar tener que modificar los archivos .htaccess.

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

Debe evitar que las reglas posteriores reescriban cosas.


3

Simplemente agregue una entrada de vhost en blanco en la parte superior del archivo de configuración de vhost, por ejemplo

<VirtualHost *:80>
</VirtualHost>

2
¿Cómo resolvería la pregunta original?
Pothi Kalimuthu

Apache está predeterminado en los OP primero llamados vhost, su instalación de Drupal, en lugar de ir a la página de estado del servidor. Un vhost vacío detendrá el procesamiento de / server-status de ser enviado a Drupal y permitirá que se cargue la página de estado
xref
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.