ti-enxame.com

Como fazer o Apache2 redirecionar para um subdiretório

Estou executando o Apache2 no Debian etch, com vários hosts virtuais.

Eu quero redirecionar para que http://git.example.com vai para http://git.example.com/git/

Deve ser realmente simples, mas o Google não está cortando isso. Eu tentei o material de redirecionamento e reescrita e eles não parecem fazer o que eu quero ...

70
Hamish Downer

Sinto-me um pouco bobo - um pouco mais pesquisando no Google apareceu a resposta que eu estava procurando:

RedirectMatch ^/$ /git/

Basicamente, redirecionando a raiz, e somente a raiz.

Este código poderia funcionar em um .htaccess file (existe uma tag para isso, então presumo que seja o caso de uso original). Mas se você pode editar, o servidor principal configura o Apache e depois o coloca na seção do seu site, provavelmente dentro de um <VirtualHost> seção.

Os documentos para RedirectMatch dizem que o contexto pode ser "configuração do servidor, host virtual, diretório, .htaccess".

115
Hamish Downer

Você tem a resposta correta lá com o redirecionamento. Você precisa ter cuidado ao redirecionar tudo para outro lugar, pois é possível obter redirecionamentos recursivos lá. Isso acontece se você deseja colocar uma página de manutenção.

3
Rory

Você pode usar a diretiva Redirect.

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

A resposta aceita resolveu meu problema, mas também achei que precisava adicionar um redirecionamento 404 para páginas inexistentes - minha situação é que a instalação do OwnCloud está localizada um nível abaixo da raiz ( https: // exemplo. com/owncloud ).

Isso funcionou para mim, para enviar tudo para o meu subdiretório:

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

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