É aqui que entra mod_rewrite
. Como qualquer um dirá, mod_rewrite é voodoo , mas é muito poderoso e é exatamente o que você precisa para essa situação.
O redirecionamento de base é sólido (e muito confiável)
RedirectMatch permanent ^/old-website/.* /new-website/
Você também pode mover seus arquivos antigos para o novo website e especificar algumas diretivas de reescrita para garantir que as URLs antigas ainda funcionem:
RewriteRule ^/old-website/foo/(.*) /new-website/new-foo/$1 [L,R=301]
RewriteRule ^/old-website/bar/(.*) /new-website/new-bar/$1 [L,R=301]
Isso corresponderá a todas as solicitações de URLs antigas, as regravará para o novo local e preservará o restante do caminho: $1
é substituído pelo conteúdo de (.*)
nesse caso. Portanto, contanto que você mantenha os nomes de arquivos e a estrutura do caminho no novo local, todos os seus links antigos continuarão funcionando.
Note que as instruções do mod_rewrite sempre acontecem antes redireciona. Tenha isso em mente ao criar seu conjunto de regras.
Para mais detalhes, eu vou encaminhá-lo para o esta excelente pergunta .
EDITAR:
Se você não tem acesso ao mod_rewrite, então você deve usar o seguinte:
RedirectMatch permanent ^/old-website/(?!(foo|bar)/).* /new-website/
Embora, se você tiver mais pastas do que isso, a linha de correspondência será um pouco difícil.