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 ...
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".
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.
Você pode usar a diretiva Redirect.
<Directory />
Redirect permanent / http://git.example.com/git/
...
</Directory>
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