85 votes

Comment faire en sorte qu'Apache2 redirige vers un sous-répertoire ?

J'utilise apache2 sur Debian etch, avec plusieurs hôtes virtuels.

Je veux rediriger pour que http://git.example.com va à http://git.example.com/git/

Ça devrait être très simple, mais Google n'y arrive pas. J'ai essayé les trucs de redirection et de réécriture, mais ils ne semblent pas faire ce que je veux...

139voto

Hamish Downer Points 9012

Je me sens un peu bête - en cherchant un peu plus sur Google, j'ai trouvé la réponse que je cherchais :

RedirectMatch ^/$ /git/

En fait, on redirige la racine, et seulement la racine.

Ce code pourrait faire dans un .htaccess (il y a une balise pour cela, donc je suppose que c'est le cas d'utilisation original). Mais si vous pouvez modifier la configuration d'apache du serveur principal, mettez-la dans la section de votre site web, probablement dans une balise <VirtualHost> section.

El Documentation pour RedirectMatch disent que le contexte peut être "configuration du serveur, hôte virtuel, répertoire, .htaccess".

4voto

mblsha Points 305

Vous avez la bonne réponse avec la redirection. Il faut faire attention quand on redirige tout vers un autre endroit, car on peut obtenir des redirections récursives. Cela se produit si vous voulez mettre en place une page de maintenance.

2voto

Vous pouvez utiliser la directive Redirect.

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

0voto

J4yne Points 11

La réponse acceptée a résolu mon problème, mais j'ai également découvert que je devais ajouter une redirection 404 pour des pages inexistantes -- ma situation est que j'ai une installation OwnCloud située un niveau en dessous de la racine ( https://example.com/owncloud ).

Cela a fonctionné pour moi, pour tout envoyer dans mon sous-répertoire :

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

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

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X