Cole as URLs antigas e novas e receba regras 301 para .htaccess ou Nginx, verificadas contra loops
Funciona no seu navegador. Nada do que você digita é enviado a lugar nenhum. Verificado em 16 de outubro de 2026.Um redirecionamento 301 informa aos navegadores e mecanismos de busca que uma página mudou de endereço para sempre. No .htaccess do Apache, RewriteRule ^old-page$ /new-page [L,R=301] envia /old-page para /new-page; no Nginx, location = /old-page { return 301 /new-page; } faz o mesmo. Use 302 ou 307 para uma mudança temporária e 410 para uma página removida de propósito.
Esta página foi traduzida automaticamente do original em inglês. Nenhuma pessoa revisou ainda a tradução; a versão em inglês é a que deve ser considerada. Ler o original em inglês
Cole um redirecionamento por linha na caixa Redirecionamentos: o caminho antigo, um espaço e depois o novo caminho ou URL.
Escolha Apache ou Nginx e ative Forçar HTTPS ou escolha com www ou sem www, se também quiser.
Corrija qualquer linha marcada como loop e aceite a sugestão de encurtar as cadeias para que cada visitante faça um único salto.
Clique em Copiar ou Baixar e adicione as regras no topo do seu arquivo .htaccess ou no seu bloco server.
Cole um redirecionamento por linha, o endereço antigo e depois o novo, e as regras são escritas enquanto você digita. Os endereços antigos podem ser caminhos ou URLs completas copiadas de um navegador ou de uma exportação de analytics; tabulações, vírgulas e setas também funcionam, então um par de colunas de uma planilha é colado direto. Adicione um código no fim de uma linha para substituir o padrão, ou escreva 410 em vez de um novo endereço para uma página que não existe mais.
Qual código.
| Código | Significado | Use para |
|---|---|---|
| 301 | Movido permanentemente | Páginas renomeadas, um novo domínio, HTTPS |
| 308 | Permanente, mesmo método | APIs e formulários que usam POST |
| 302 / 307 | Temporário | Campanhas, manutenção, testes A/B |
| 410 | Removido | Páginas removidas de propósito |
Apache. Toda regra usa mod_rewrite. A diretiva Redirect, mais simples, compara prefixos, então Redirect /shop /store também pega /shopping, e misturar os dois módulos faz com que rodem numa ordem que surpreende muita gente. Os padrões são ancorados e escapados, então um ponto em old.html corresponde só a um ponto. Um endereço antigo com query string, como /products?id=42, recebe sua própria RewriteCond e a query é removida do novo endereço.
Nginx. Cada página recebe um bloco exato location = com return. O HTTPS e a escolha do www recebem seus próprios blocos server, que precisam do seu domínio.
Verificações. Uma regra que envia uma página para ela mesma, diretamente ou por meio de outras regras, é um loop e fica de fora. Uma regra que aponta para outra página redirecionada é uma cadeia; um clique faz ela apontar direto para a página final, para que visitantes e rastreadores façam um salto em vez de vários. Um endereço antigo repetido é sinalizado, porque só a primeira regra chegaria a rodar.
O HTTPS e o host são tratados em um único salto, antes das regras de página. Teste primeiro com 302: os navegadores lembram de um 301 por muito tempo.
Tudo roda no seu navegador; nada do que você cola é enviado para lugar nenhum.
Adicione RewriteEngine On uma vez e depois uma linha por página: RewriteRule ^old-page$ /new-page [L,R=301]. No .htaccess o padrão não tem barra inicial, o circunflexo e o cifrão fazem com que corresponda só a essa página exata, e R=301 torna a mudança permanente. Coloque as regras perto do topo do arquivo, antes de qualquer bloco do WordPress ou de um framework.
301 e 308 são permanentes: os mecanismos de busca transferem o ranqueamento da página antiga para o novo endereço. 302 e 307 são temporários, então o endereço antigo continua indexado. 307 e 308 também exigem que os navegadores repitam o mesmo método, como POST, enquanto 301 e 302 permitem trocar para GET. A maioria das mudanças de página deve usar 301.
Combine as condições para que o visitante faça um único salto: redirecione quando o HTTPS estiver desligado ou o host começar com www, e envie-o para https mais o host sem www. Este gerador escreve exatamente isso com três linhas RewriteCond e uma RewriteRule, ou um par de blocos server para o Nginx, em vez de dois redirecionamentos separados em sequência.
Um loop acontece quando uma regra envia uma página para um endereço que a mesma ou outra regra redireciona de volta. Causas comuns são redirecionar /page para /page/ enquanto outra regra remove a barra, ou forçar HTTPS atrás do Cloudflare Flexible SSL, onde o servidor sempre vê HTTP. Esta ferramenta recusa regras que formam loop e indica a linha.
A RewriteRule nunca vê a query string, então verifique-a primeiro com uma RewriteCond: RewriteCond %{QUERY_STRING} ^id=42$, e depois a RewriteRule para o caminho. Adicione a flag QSD para que ?id=42 não seja copiado para o novo endereço. Colar aqui /products?id=42 /products/blue-mug escreve as duas linhas para o Apache, ou um teste if ($args) para o Nginx.
Cada salto extra custa um pouco de tempo, e o Google segue no máximo 10 saltos antes de desistir, então as cadeias desperdiçam esforço de rastreamento e deixam os visitantes mais lentos. Depois de uma segunda migração do site, endereços antigos muitas vezes apontam para páginas que foram redirecionadas de novo. Este gerador encontra cada cadeia e reescreve a regra para apontar direto para a página final com um clique.
Taxas e regras mudam; confira a fonte antes de confiar em um valor.
Ainda com dúvidas? Pergunte sobre Gerador de redirecionamentos .htaccess e qualquer pessoa que saiba pode responder. Não é preciso ter conta.