Ir para o conteúdo

Gerador de Redirect 301 (.htaccess e nginx)

Gere a regra 301 para .htaccess (Apache) ou nginx, de uma página, do domínio, de HTTP para HTTPS ou de www para sem www, e copie.

  • Roda no seu navegador

Entrada

Servidor

0 de 200 caracteres

Página específica: caminho exato, iniciado por barra. Exemplo: /antigo.html.

0 de 253 caracteres

Domínio antigo (domínio inteiro) ou domínio do site (HTTPS e www), sem o prefixo www

0 de 2.048 caracteres

Página específica: endereço completo ou caminho iniciado por barra. Domínio inteiro: apenas o endereço base do novo site (esquema e host, sem caminho).

Resultado

O resultado aparece aqui.

O que cada modo gera

ModoApache (.htaccess)nginx
Página específicaRedirectMatch com o caminho exatolocation = com return 301
Domínio inteiroRewriteCond no host e RewriteRule para o novo domínioserver com return 301 e $request_uri
HTTP para HTTPSRewriteCond com HTTPS desligadoserver na porta 80 com return 301 para https
Com e sem wwwRewriteCond no host, mantendo o esquema da requisiçãoserver_name do host de origem e $scheme no destino

Resultados de referência: redirect 301 (.htaccess e nginx)

ServidorRegra para /antigo.html levar a /novo
ApacheRedirectMatch 301 ^/antigo\.html$ /novo
nginxlocation = /antigo.html { return 301 /novo; }

A origem casa só o caminho exato: /antigo e /antigo/ são endereços diferentes. Informe o domínio sem www; no nginx o bloco cobre o domínio e também a variante com www, que costuma existir.

Antes de publicar

  • O .htaccess exige AllowOverride, mod_alias e mod_rewrite; a variável de esquema pede Apache 2.4 ou superior.
  • O bloco do nginx escuta só a porta 80. Em domínio inteiro e www, repita-o com listen 443 ssl; em HTTP para HTTPS, não o repita na 443 (laço).
  • Atrás de proxy ou CDN que termina o TLS, a condição de HTTPS desligado e o esquema do Apache podem gerar laço.
  • Em .htaccess fora da raiz, o $1 é relativo ao diretório do arquivo.
  • Domínio inteiro: o destino não pode ser o próprio domínio nem o www dele (laço).
  • Apache, página específica: o destino não pode ter & (substituição de regex do RedirectMatch); use nginx.
  • Teste o 301 com curl -I antes de publicar: navegadores o guardam.

Perguntas frequentes

Como fazer redirecionamento 301 no htaccess?

Escolha .htaccess, o modo página específica, o caminho antigo e o destino. Saída de exemplo: RedirectMatch 301 ^/antigo\.html$ /novo

Como fazer redirect 301 no nginx?

Escolha nginx e o modo página específica. O gerador escreve o bloco para colocar dentro do server: location = /antigo.html { return 301 /novo; }

Como redirecionar www para sem www?

Escolha o modo de www para sem www e informe o domínio sem o prefixo. No Apache, a regra preserva o esquema da requisição. No nginx, o bloco gerado escuta só a porta 80 e usa o esquema em $scheme; para cobrir também o HTTPS, repita o bloco com listen 443 ssl e o certificado.