Domínios e DNS

Redirecionar um domínio mantendo determinadas pastas

Revisto a 2 min de leitura redirecionamentos .htaccess

Pode mudar o site para outro domínio e manter determinadas pastas na origem, por exemplo uma intranet. Para isso, adicione exceções ao redirecionamento no ficheiro .htaccess.

Este exemplo redireciona as visitas de example.com para example.net, mas mantém intranet no domínio original:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?example\.com$ [NC]
RewriteCond %{REQUEST_URI} !^/intranet(?:/|$) [NC]
RewriteRule ^(.*)$ https://example.net/$1 [R=302,L]

Estas regras são adicionadas no início do .htaccess do diretório associado ao domínio ou caminho que vamos redirecionar. Teste-as primeiro com o código temporário 302, para evitar que o navegador guarde um redirecionamento errado. Depois de validar o destino e as exclusões, altere R=302 para R=301 se a mudança for permanente.

A regra mantém o caminho: /articulo será enviado para https://example.net/articulo. Se pretender excluir vários diretórios, repita a condição antes da regra e altere o nome em cada linha:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?example\.com$ [NC]
RewriteCond %{REQUEST_URI} !^/directorio_1(?:/|$) [NC]
RewriteCond %{REQUEST_URI} !^/directorio_2(?:/|$) [NC]
RewriteCond %{REQUEST_URI} !^/directorio_3(?:/|$) [NC]
RewriteRule ^(.*)$ https://example.net/$1 [R=302,L]

Adaptar e testar o alcance

Os exemplos são colocados na raiz do documento de example.com. Substitua o domínio de origem e o destino pelos seus; na condição de origem, mantenha o escape dos pontos. A condição de nome evita redirecionar outros domínios que partilhem a pasta, incluindo o destino.

Teste /intranet, /intranet/ e um ficheiro interior: devem permanecer na origem. Teste também /intranet-publica: não é a pasta excluída e deve seguir o redirecionamento. Repita as verificações com os nomes reais das suas exceções.

Excluir uma pasta não a protege com palavra-passe nem garante que os seus recursos externos continuem disponíveis. Verifique o CSS, as imagens, os formulários e a autenticação; algum pode depender de um caminho que está a ser redirecionado. Guarde o .htaccess anterior para poder recuperar as regras em caso de erro ou de ciclo.

Também lhe pode ser útil

Algo não bate certo ou mudou? Diga-nos e revemos.