Gerador de Redirecionamento Htaccess

Toda vez que você migra um blog, altera seu esquema de URL ou consolida páginas antigas, o .htaccess do Apache suporta a maior parte da limpeza. Este gerador transforma um simples mapeamento de origem → destino nas diretivas RewriteRule corretas com as flags adequadas, prontas para serem inseridas no arquivo .htaccess do site.

Como gerar regras de redirecionamento

  1. 1

    Escolha o tipo de redirecionamento

    301 permanente para mudanças seguras para SEO, 302 temporário para testes A/B e redirecionamentos sazonais.

  2. 2

    Insira a origem e o destino

    Caminhos exatos ou padrões regex: o caminho antigo vira o padrão RewriteRule e a nova URL o destino do redirecionamento.

  3. 3

    Verifique as flags

    Cada regra recebe a flag correta, `[R=301,L]` ou `[R=302,L]`, para o bloco funcionar direto com o mod_rewrite.

  4. 4

    Copie as diretivas

    O bloco gerado vai dentro da seção `<IfModule mod_rewrite.c>` do .htaccess.

diretivas mod_rewrite vs mod_alias

O Apache oferece dois módulos para redirecionamentos. Escolha com base na complexidade da regra.

Guia de decisão

Requisito Use Exemplo
URL antiga exata → URL nova exata Redirect Redirect 301 /old /new
Prefixo curinga RedirectMatch RedirectMatch 301 ^/blog/(.*)$ /articles/$1
Correspondência de string de consulta RewriteRule Veja abaixo
Forçar HTTPS RewriteRule RewriteCond %{HTTPS} off + regra
Condicional (navegador, cookie) RewriteRule Com RewriteCond

Exemplo: forçar HTTPS com www

RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Exemplo: mover /blog/post-123 para /articles/post-123

RewriteEngine On
RewriteRule ^blog/(.*)$ /articles/$1 [L,R=301]

Flags que você verá

  • L, último, não continue processando regras adicionais.
  • R=301 ou R=302, redirecionar com esse código de status.
  • NC, sem diferenciação entre maiúsculas e minúsculas.
  • QSA, anexa a string de consulta original à nova URL.
  • NE, não recodificar caracteres especiais no destino.

Erros comuns

  • Esquecer RewriteEngine On, sem isso, nenhuma RewriteRule tem efeito.
  • Usar 302 por padrão, o Google trata como temporário, então a URL antiga continua ranqueando.
  • Redirecionamentos encadeados (antigo → intermediário → final), sempre busque um único salto; cada salto extra perde equidade de link e adiciona latência.

Perguntas frequentes

Use 301 para mudanças permanentes: migração de site, alteração de slug de URL, atualização para HTTPS. Use 302 apenas para situações temporárias, como redirecionar para uma página de manutenção ou um teste A/B. Motores de busca transferem sinais de ranqueamento em 301, não de forma confiável em 302.

A causa mais comum é esquecer a barra inicial no padrão. Em RewriteRule, o padrão corresponde ao caminho sem a barra inicial (por exemplo, ^blog/). Em Redirect (mod_alias), o padrão começa com uma barra (/blog). Não misture as duas convenções.

Sim, use RewriteCond %{QUERY_STRING} ^id=123$ antes de uma RewriteRule. O Redirect simples não lê a string de consulta; apenas RewriteRule pode corresponder a ela.

Sim, na próxima solicitação, o Apache lê novamente o .htaccess a cada solicitação. Nenhum reinício do servidor é necessário. Se nada acontecer, verifique se AllowOverride All está definido no vhost para o diretório.

Ferramentas relacionadas

Ferramenta disponível em outros idiomas