A pior hora de uma migração de site que EU já fiz foi gasto olhando para um erro 500 em um site ao vivo, ea causa foi um único personagem perdido em um arquivo .htaccess Eu tinha escrito à mão um lote de redirecionamentos para uma reconstrução WordPress, gordo-dedo um sinalizador RewriteRule, e Apache respondeu recusando-se a servir todo o domínio Os redirecionamentos em si estavam bem; a sintaxe em torno deles não era, e .htaccess é implacável dessa forma Depois disso EU parei de escrever regras de redirecionamento à mão e comecei a gerá-los, que é exatamente o que o Gerador de redirecionamento htaccess no Toolz.dev faz Este guia cobre como os redirecionamentos do Apache funcionam, quando usar cada tipo e como canonizar HTTPS e www sem quebrar nada.
tl;dr: Um arquivo .htaccess diz ao Apache como redirecionar URLs Use um 301 para movimentos permanentes, um 302 para temporários,
Redirectpara caminhos exatos, eRewriteRulepara padrões. O Gerador de redirecionamento htaccess constrói todas essas regras de força HTTPS e www a partir de uma lista simples, ordenada corretamente, inteiramente em seu navegador, sem nada carregado.
O que é um gerador de redirecionamento htaccess?
Um gerador de redirecionamento .htaccess transforma uma lista simples de mapeamentos de URL antigos para novos nas diretivas exatas do Apache que executam os redirecionamentos Qual código de status você escolhe é uma pergunta de protocolo, não um Apache: RFC 9110 define 301 como permanente e 302 como encontrado O arquivo .htaccess é um arquivo de configuração por diretório que o Apache lê em cada solicitação, e na hospedagem compartilhada geralmente é o único lugar onde você pode declarar redirecionamentos, porque você não pode editar a configuração principal do servidor O gerador escreve ambos os sabores de redirecionamento que o Apache suporta: o mod_alias Redirect diretriz para mudanças diretas de caminho um-para-um e mod_rewrite RewriteRule diretiva para correspondências de padrões que capturam muitos URLs ao mesmo tempo.
A razão para gerar estes em vez de digitá-los é que a sintaxe do .htaccess é precisa e punitiva Um sinalizador extraviado, um ponto não escapado em um padrão ou uma regra na ordem errada não produz um aviso; ele produz um erro 500 que leva todo o site para baixo até que você o encontre e corrija As diretivas também têm que aparecer em uma ordem específica, com o mecanismo de reescrita ligado antes de qualquer RewriteRule, e regras em todo o site à frente das de nível de página, ou eles se comportam mal de maneiras difíceis de depurar Um gerador codifica essa ordem e sintaxe para que você não possa errá-lo sutilmente.
Em Toolz.dev o fluxo espelha como você realmente pensa sobre uma migração Você lista cada caminho antigo e seu novo destino, escolha se o movimento é permanente ou temporário e se é um caminho exato ou um padrão, e opcionalmente alternar as duas regras de todo o site quase todo site precisa A ferramenta monta todo o arquivo na ordem correta e sinaliza qualquer coisa suspeita, como uma regra que redireciona um caminho para si mesmo, antes de colá-lo em seu site.
Qual é a diferença entre um redirecionamento 301 e 302?
Um 301 é um redirecionamento permanente e um 302 é temporário, e para um mecanismo de busca essa distinção é o ponto inteiro Um 301 diz aos navegadores e rastreadores que a página se moveu para sempre, e os mecanismos de pesquisa respondem transferindo quase todos os URLs antigos e #39; s acumularam sinais de classificação para o novo endereço e, eventualmente, retirando o URL antigo de seu índice Um 302 diz a eles que a mudança é temporária, então eles mantêm o URL original indexado e classificado e tratam o destino como um substituto que irá desaparecer.
Escolher o errado tem consequências reais Usar um 302 para um movimento permanente e os motores de busca podem manter o URL antigo classificado enquanto sua nova página luta para acumular sua própria autoridade, porque os sinais nunca foram transferidos Usar um 301 para algo genuinamente temporário, como uma página que está para baixo para manutenção ou uma página de destino sazonal, e você pode perder permanentemente o ranking do original uma vez que a situação reverte A regra é simples: se o URL antigo nunca está voltando, use 301; se for, use 302.
Veja como os dois se comparam nas propriedades que importam:
| Propriedade | 301 Permanente | 302 Temporário |
|---|---|---|
| sentido | Page mudou para sempre | A página está temporariamente em outro lugar |
| Sinais de classificação | Transferido para o novo URL | Fique com o URL original |
| URL antigo no índice | Eventualmente caiu | guardado |
| Uso típico | Redesenhos, migrações, páginas mescladas | Manutenção, testes A/B, páginas sazonais |
| Cache do navegador | Cached agressivamente | Não armazenado em cache por padrão |
O gerador permite definir o status por regra, de modo que uma migração que é principalmente movimentos permanentes com um redirecionamento promocional temporário é uma única lista mista em vez de dois arquivos Como 301 s são armazenados em cache agressivamente por navegadores, vale a pena acertar na primeira vez; um 301 errado pode persistir em um visitante & #39; s navegador muito tempo depois de você corrigir o servidor.
Quando devo usar o redirecionamento versus rewriterule?
use o Redirect diretiva para uma mudança de caminho exata e individual, e a RewriteRule quando você precisa combinar um padrão. Redirect 301 /old-page /new-page é toda a regra para mover uma única página, e é legível, difícil de errar, e tratado por Apache' s mod_alias módulo Quando você tem um punhado de páginas específicas que cada mudou para um novo local específico, uma lista de Redirect linhas é a maneira mais clara e segura de expressá-lo.
um RewriteRule ganha sua complexidade quando uma regra precisa capturar muitos URLs. Se cada postagem estiver abaixo /blog/2023/ movido para o mesmo caminho sem o ano, escrevendo a Redirect a linha para cada postagem seria centenas de regras; um único RewriteRule ^blog/2023/(.*)$ /blog/$1 [R=301,L] lida com todos eles capturando a peça após o ano e reutilizando-a no destino O poder vem de expressões regulares e grupos de captura, mas o risco também, porque um personagem especial não escapado ou um padrão ganancioso pode corresponder muito mais do que você pretendia.
O gerador escolhe a diretiva certa para você com base no tipo de correspondência que você escolhe por regra: regras exatas se tornam Redirect linhas e regras de padrões tornam-se RewriteRule linhas, com o motor de reescrita ligado automaticamente quando qualquer regra de padrão está presente Ele também mantém os dois grupos na ordem correta na saída Se você é novo para escrever os padrões em si, o testador regex permite verificar um padrão em relação a URLs de amostra antes de confiar nele em um redirecionamento, que é como confirmo que um grupo de captura faz o que espero.
Como forço HTTPS no htaccess?
Para forçar o HTTPS, você adiciona uma condição de reescrita que verifica se a solicitação atual ainda não está segura, seguida por uma regra que redireciona para a versão https do mesmo host e caminho O formulário padrão verifica %{HTTPS} off e então reescreve para https://%{HTTP_HOST}/$1 com um 301, então toda solicitação HTTP simples é permanentemente atualizada para a versão criptografada da URL idêntica Servir um site tanto em http quanto em https sem esse redirecionamento significa que os mecanismos de pesquisa podem indexar duas versões de cada página, dividindo seus sinais de classificação entre elas.
A sutileza é ordenar A regra HTTPS tem que ser executada antes de qualquer host reescrever, como adicionar ou remover www, para que essas regras posteriores também caiam no esquema seguro em vez de enviar um visitante de http para https e, em seguida, através de um segundo redirecionamento Obter isso errado produz cadeias de redirecionamento, onde uma única solicitação salta através de dois ou três saltos antes de chegar, o que é mais lento para os usuários e dilui o benefício de classificação do redirecionamento O gerador coloca a regra HTTPS em primeiro lugar exatamente por esse motivo.
Ative o Force HTTPS na ferramenta e ele insere a condição e regra corretas no topo da saída, à frente de seus redirecionamentos de página e regra www. Como o HTTPS agora é uma expectativa de linha de base em vez de um extra opcional, e os navegadores sinalizam cada vez mais páginas http simples como inseguras, essa é uma regra que adiciono a essencialmente todos os sites Ele emparelha naturalmente com a regra canônica-host coberta a seguir, e juntos eles estabelecem um site em exatamente um endereço para cada página.
Como redireciono www para não-www ou o inverso?
Você canoniza o prefixo www com uma regra de reescrita que verifica o host e redireciona para a versão que você escolheu Para remover www, você combina hosts que começam com www., capture o resto e redirecione para o domínio simples; para adicionar www, você corresponde a hosts que não começam com www. e redirecionar para a versão prefixada De qualquer forma, o objetivo é que cada página seja alcançável em exatamente um host canônico, porque servindo o mesmo conteúdo em ambos www.example.com e example.com é um problema clássico de conteúdo duplicado que divide os sinais de classificação da mesma forma que uma divisão http/https não resolvida.
Não há vantagem de SEO para www sobre não-www ou o inverso; o que importa é que você escolha um e imponha-o consistentemente Grandes sites historicamente usado www por razões técnicas em torno de cookies e subdomínios, enquanto muitos sites modernos deixá-lo para brevidade O importante é que uma vez que você escolher, cada link, cada tag canônica, e cada redirecionar pontos na mesma versão, para que os motores de busca consolidar toda a sua autoridade em um host, em vez de dividi-lo.
O gerador oferece uma única configuração www com três opções: deixá-lo inalterado, forçar www ou remover www Ele escreve a condição e regra de correspondência e coloca-o após a regra HTTPS para que os dois cooperem em vez de encadear Qualquer host que você se estabelecer também deve ser o de suas tags canônicas e seu mapa do site, por isso vale a pena gerar o seu mapa do site com o mesmo host canônico e declarando suas regras de rastreamento em uma correspondência robôs.txt. A consistência entre os três é o que faz com que a canonização realmente se mantenha.
Esses redirecionamentos funcionam no nginx?
Não. O formato .htaccess é específico para o servidor web Apache e os servidores que deliberadamente emulam, mais notavelmente LiteSpeed. Nginx não lê arquivos .htaccess em tudo; ele ignora-los completamente, então colando Apache diretivas em uma configuração Nginx não faz nada Nginx lida com redirecionamentos com o seu próprio return e rewrite diretivas dentro server e location blocos na configuração principal, utilizando uma sintaxe diferente e um modelo de avaliação diferente.
Isso importa porque um número surpreendente de problemas de redirecionamento vem da aplicação da regra certa ao servidor errado Se seus redirecionamentos parecem ser ignorados, não importa o que você escreve, a primeira coisa a verificar é qual servidor web está realmente servindo seu site, porque um arquivo.htaccess em um host Nginx é inerte Os hosts gerenciados do WordPress, em particular, às vezes executam o Nginx na frente ou em vez do Apache, e lá o arquivo.htaccess que você editou cuidadosamente não tem efeito.
O gerador produz sintaxe Apache, que cobre a grande maioria da hospedagem compartilhada e qualquer host executando Apache ou LiteSpeed Se você estiver no Nginx, a lógica das regras se traduz diretamente, um redirecionamento permanente ainda é um 301 e um host canônico ainda é um host canônico, mas a sintaxe deve ser reescrita para Nginx' s diretivas, que é um trabalho para o seu host' s configuração em vez de um arquivo .htaccess Saber em qual servidor você está antes de começar salva a confusão que EU assisti engolir tardes inteiras.
Quando é que EU iria realmente usar isto?
As migrações de sites são o caso principal Sempre que EU reconstruo um site, seja um projeto WordPress movendo-se para novas estruturas de URL ou uma nova compilação substituindo uma antiga, toda URL antiga que tinha tráfego ou backlinks precisa de um 301 para sua nova casa, ou que o tráfego e a autoridade evaporam em 404 s. Listar esses mapeamentos e gerar o bloco de redirecionamento em uma passagem, corretamente ordenado e sintaticamente limpo, é muito mais seguro do que editar manualmente um arquivo que pode derrubar o site em um erro de digitação As regras de padrão lidam com seções inteiras que se moveram como um grupo.
Aplicar HTTPS e um host canônico é o caso cotidiano Mesmo em um site sem redirecionamentos no nível da página, vale a pena adicionar as regras force-HTTPS e www para consolidar os sinais de classificação e atender aos navegadores de linha de base de segurança que agora espero Gero essas duas regras para essencialmente cada novo site e as colar antes do lançamento, para que o site seja canônico desde o primeiro dia, em vez de ser limpo mais tarde, uma vez que as versões duplicadas já tenham sido indexadas.
Limpar depois que o fato arredonda para fora Redirecionamentos antigos acumulam, alguns encadeiam através de dois ou três saltos, e algum ponto em páginas que desde então se moveram novamente Regenerar todo o bloco de uma lista limpa, com os avisos de loop e formato que a ferramenta fornece, é uma boa maneira de achatar essas cadeias de volta para saltos únicos Redirecionamentos são um canto do SEO no local, e eles se sentam ao lado do gerador de meta tags e o resto do kit de ferramentas na página; o argumento mais amplo para manter esse tipo de utilitário no navegador é aquele que faço no Guia do kit de ferramentas para desenvolvedores web, e o ângulo de produtividade no Guia de ferramentas de produtividade do desenvolvedor.
Meus dados de URL são privados?
Sim. Toda regra é gerada em JavaScript dentro do seu navegador Os URLs que você insere, seu domínio e seu mapa de redirecionamento nunca são transmitidos, registrados ou armazenados, e a ferramenta continua trabalhando sem conexão de rede depois que a página é carregada Um mapa de redirecionamento é efetivamente um diagrama da estrutura do seu site' s e suas páginas mais valiosas, e enquanto não é secreto da maneira que uma senha é, não há razão para que ela flua através de outra pessoa' s servidor apenas para montar um arquivo de texto.
Como o trabalho acontece localmente, você pode planejar uma migração offline, gerar as regras em um laptop sem conexão e colá-las quando estiver pronto, sem nenhuma parte do seu site' s estrutura de URL saindo do dispositivo Essa abordagem local é a mesma por trás de cada ferramenta no Toolz.dev, e significa que a ferramenta é tão utilizável em um plano quanto em uma mesa O argumento geral para preferir ferramentas baseadas em navegador que nunca carregam seus dados é um que EU estabeleci no privacidade de dados no guia de ferramentas online.
FAQ
Qual é a diferença entre um redirecionamento 301 e 302?
Um 301 é um redirecionamento permanente: ele diz aos navegadores e motores de busca a página se moveu para sempre e passa quase todos os antigos sinais de classificação URL' s para o novo Um 302 é temporário: ele encaminha os visitantes, mas sinaliza que o URL original deve manter sua classificação e pode retornar Use 301 para movimentos permanentes e 302 somente quando a mudança é genuinamente temporária.
Onde coloco o arquivo htaccess?
Coloque o arquivo .htaccess no diretório raiz do seu site, geralmente a pasta que também contém index.php ou index.html. Redirecionamentos declarados lá se aplicam a todo o site. O nome do arquivo começa com um ponto e não possui extensão, e o Apache deve ter AllowOverride habilitado para o diretório, que a maioria dos hosts compartilhados configura por padrão.
Quando devo usar o redirecionamento versus rewriterule?
Use a diretiva redirecionamento mod_alias para uma mudança direta de um para um, como /old-page para /new-page. Use um rewriterule mod_rewrite quando precisar combinar um padrão, por exemplo, enviando todos os URLs em /blog/2023/ para o mesmo caminho sem o ano. Esta ferramenta emite redirecionamento para regras exatas e RewriteRule para regras de padrão automaticamente.
Como forço HTTPS no htaccess?
Habilitar Force HTTPS e o gerador adiciona um RewriteCond que verifica se o HTTPS está desligado, seguido por um RewriteRule que redireciona para a versão https do mesmo host e caminho com um 301 Colocar esta regra antes de seus outros redirecionamentos garante que cada solicitação seja atualizada para uma conexão segura primeiro, sem encadear através de saltos extras.
Esses redirecionamentos funcionam no nginx?
Não. O formato .htaccess é específico para o servidor web Apache e servidores que o emulam, como o LiteSpeed O Nginx não lê arquivos .htaccess e usa suas próprias diretivas de reescrita e retorno na configuração do servidor, então você precisaria traduzir essas regras para a sintaxe do Nginx Verifique em qual servidor seu site é executado antes que a solução de problemas ignore os redirecionamentos.
Esses redirecionamentos prejudicarão meu SEO?
Usado corretamente, os redirecionamentos protegem o SEO em vez de prejudicá-lo. Um 301 preserva o ranking de uma página movida e canonizar o HTTPS e o WWW impede que versões duplicadas dividam seus sinais. Os riscos vêm de cadeias de redirecionamento, loops ou redirecionamento para páginas irrelevantes, portanto, mantenha cada regra apontando diretamente para o destino mais relevante.
Uma regra pode redirecionar muitos URLs de uma só vez?
Sim. Defina a regra para o modo de padrão e use uma expressão regular no campo de origem com grupos de captura, depois faça referência a eles no destino com $1, $2 e assim por diante Por exemplo, ^blog/(.*) $ redirecionado para/articles/$1 move cada página em/blog/para a página correspondente em/articles/com uma única regra.
Meus dados de URL são privados?
Sim. As regras são geradas no seu navegador com JavaScript Nada do que você inserir é carregado, registrado ou armazenado, e a ferramenta continua trabalhando sem conexão com a internet depois que a página é carregada Um mapa de redirecionamento descreve sua estrutura do site' s, e com uma ferramenta do lado do cliente nunca sai do seu dispositivo para montar o arquivo.
Construa seus redirecionamentos com o gratuito Gerador de redirecionamento htaccess. Ele escreve regras do Apache 301 e 302, canonização force-HTTPS e www a partir de uma lista simples, ordenada corretamente, inteiramente em seu navegador, sem nada carregado.



