Gerador de redirecionamentos .htaccess
Gera redirecionamentos 301 e 302 para .htaccess ou Nginx, força HTTPS e www, muda de domínio e trata a barra final, com deteção de ciclos e cadeias.
Faz primeiro uma cópia de segurança da configuração atual e testa com 302 antes de passares para 301: os navegadores guardam em cache os redirecionamentos permanentes.
Verificações
Não foram encontrados problemas.
Como usar o gerador de redirecionamentos .htaccess
- Escolhe o Servidor: Apache (.htaccess) ou Nginx, e depois o Tipo de redirecionamento: 301 – permanente ou 302 – temporário.
- Em Redirecionamentos de páginas, escreve um redirecionamento por linha: o caminho antigo, um espaço e o novo URL, por exemplo
/pagina-antiga.html /pagina-nova/. Também funcionam uma tabulação, uma vírgula ou->, e podes colar URL antigos completos ou linhasRedirect 301 /a /bque já tenhas. - Se quiseres, indica O teu domínio (por exemplo
example.com) para que os redirecionamentos de páginas apontem diretamente para o endereço final. - Em Endereço canónico, marca Forçar HTTPS e escolhe Forçar www, Remover www ou Deixar o www como está. Em Barra final, escolhe se a queres adicionar ou remover.
- Se o site inteiro mudou de sítio, preenche Mudar o domínio inteiro com o Domínio antigo e o Novo endereço, e deixa Manter o caminho marcado para que cada página vá parar à sua equivalente.
- Lê as Verificações e depois usa Copiar ou Transferir para obter as regras. Carregar um exemplo mostra uma configuração completa.
Como funcionam as regras geradas
Para Apache, a ferramenta escreve regras mod_rewrite, começando por um único RewriteEngine On. Cada página torna-se uma RewriteRule cujo padrão começa por ^/?, para funcionar tanto num ficheiro .htaccess (onde a barra inicial é removida) como num bloco <VirtualHost>. Pontos, parênteses retos, sinais de mais e outros caracteres de expressões regulares nos teus caminhos são escapados, e um espaço passa a \x20. No novo URL, $ e % são escapados porque o Apache os leria como referências, e a flag NE impede o Apache de codificar o URL uma segunda vez.
Uma RewriteRule nunca vê a query string. Quando um endereço antigo tem uma, como /produto.php?id=42, a ferramenta acrescenta uma linha RewriteCond %{QUERY_STRING} ^id=42$ e a flag QSD, para que os parâmetros antigos sejam descartados em vez de copiados para a nova página.
As regras são ordenadas para evitar saltos desnecessários: primeiro a mudança de domínio, depois os redirecionamentos de páginas, a seguir a barra final e por fim HTTPS e www. HTTPS e www são tratados por uma só regra, por isso http://www.example.com vai para https://example.com num único redirecionamento. Quando o teu domínio é conhecido, os redirecionamentos de páginas e de barra final já apontam para o endereço HTTPS final.
Para Nginx, HTTPS, www e mudanças de domínio tornam-se blocos server separados com return 301, e os redirecionamentos de páginas tornam-se linhas rewrite para colar dentro do teu bloco server principal. São executadas antes da correspondência dos location, por isso também têm prioridade sobre a regra da barra final. Um ? no fim de um destino impede o Nginx de acrescentar a query string antiga quando não deve.
Verificações feitas
- Uma página que redireciona para si própria, ou duas páginas que redirecionam uma para a outra (um ciclo que acaba em «demasiados redirecionamentos»).
- Cadeias como A → B → C: aponta A diretamente para C, porque cada salto extra torna a visita mais lenta e desperdiça orçamento de rastreio.
- O mesmo endereço antigo indicado duas vezes, caso em que só a primeira regra se aplicaria.
- Um destino que não é nem um URL absoluto nem um caminho começado por
/, ou um destinohttp://ou com o www errado no teu próprio domínio. - Uma definição de barra final que voltaria a redirecionar um destino ou o devolveria à origem.
Perguntas frequentes
Devo usar 301 ou 302?
Usa 301 quando a mudança é permanente: os motores de busca transferem os sinais da página antiga para a nova e atualizam o índice. Usa 302 para mudanças temporárias, como uma manutenção ou uma campanha curta. Os navegadores guardam os redirecionamentos 301 em cache, por isso testa primeiro com 302.
Onde ponho o ficheiro .htaccess?
Na pasta raiz do site (muitas vezes public_html ou www), ao lado do index.php ou do index.html. O ficheiro transferido chama-se htaccess.txt; muda-lhe o nome para .htaccess ou cola as regras no início do ficheiro que já tens. Guarda uma cópia de segurança do original.
Porquê RewriteRule em vez de Redirect 301?
As linhas Redirect vêm do mod_alias e são executadas numa fase diferente da RewriteRule. Misturar as duas no mesmo ficheiro torna a ordem difícil de prever. Usar só mod_rewrite mantém todas as regras numa sequência previsível e permite comparar query strings.
O meu site mostra «demasiados redirecionamentos» depois de forçar HTTPS. Porquê?
Atrás de um balanceador de carga, de uma CDN ou de um proxy que termina o HTTPS, o Apache vê cada pedido como HTTP simples, por isso %{HTTPS} está sempre desligado. Nesse caso, testa antes o cabeçalho reencaminhado, por exemplo RewriteCond %{HTTP:X-Forwarded-Proto} !https, ou ativa o redirecionamento na CDN.
Esta ferramenta altera o meu servidor?
Não. Só gera texto no teu navegador. Nada é enviado para lado nenhum e és tu quem decide onde e como instalar as regras.
Ferramentas relacionadas
- Gerador de robots.txt Cria um ficheiro robots.txt válido com grupos de user agents, regras Allow e Disallow, sitemaps e crawl-delay, com deteção dos erros mais comuns.
- Gerador de etiquetas hreflang Gera etiquetas hreflang para páginas multilíngues em HTML, entradas de sitemap XML ou cabeçalhos HTTP Link, com verificação dos códigos ISO e da reciprocidade.
- Gerador de meta tags Gerador de meta tags gratuito para título, meta description, URL canónico, robots e viewport, com verificação do comprimento e HTML corretamente escapado.
- Codificador e descodificador de URL Codificador e descodificador de URL gratuito. Codifica parâmetros ou URLs completos, descodifica sequências %XX e trata + como espaço, no navegador.