it-swarm-es.com

Cómo hacer que Apache2 redirija a un subdirectorio

Estoy ejecutando Apache2 en Debian etch, con múltiples hosts virtuales.

Quiero redirigir para que http://git.example.com va a http://git.example.com/git/

Debería ser realmente simple, pero Google no lo está cortando. He intentado las cosas Redirigir y Reescribir y no parecen hacer lo que quiero ...

70
Hamish Downer

Siéntete un poco tonto, un poco más de google apareció la respuesta que buscaba:

RedirectMatch ^/$ /git/

Básicamente redirigiendo la raíz, y solo la raíz.

Este código podría funcionar en un .htaccess archivo (hay una etiqueta para esto, así que supongo que ese es el caso de uso original). Pero si puede editar, la configuración de Apache del servidor principal lo coloca en la sección de su sitio web probablemente dentro de un <VirtualHost> sección.

El documentos para RedirectMatch dice que el contexto puede ser "configuración del servidor, host virtual, directorio, .htaccess".

115
Hamish Downer

Tienes la respuesta correcta allí con la redirección. Debe tener cuidado al redirigir todo a otro lugar, ya que puede obtener redireccionamientos recursivos allí. Esto sucede si desea colocar una página de mantenimiento.

3
Rory

Puede usar la directiva Redirect.

<Directory />
   Redirect permanent / http://git.example.com/git/
   ...
</Directory>
3
Steve Chui

La respuesta aceptada resolvió mi problema, pero también descubrí que tenía que agregar una redirección 404 para páginas no existentes; mi situación es que tengo una instalación OwnCloud ubicada un nivel por debajo de la raíz ( https: // ejemplo. com/owncloud ).

Esto funcionó para mí, para enviar todo a mi subdirectorio:

# redirect from root to subdirectory
RedirectMatch ^/$ /thesubdirectory/

# redirect on 404 to subdirectory
ErrorDocument 404 /thesubdirectory/index.php
0
J4yne