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
Resultado
O resultado aparece aqui.
O que cada modo gera
| Modo | Apache (.htaccess) | nginx |
|---|---|---|
| Página específica | RedirectMatch com o caminho exato | location = com return 301 |
| Domínio inteiro | RewriteCond no host e RewriteRule para o novo domínio | server com return 301 e $request_uri |
| HTTP para HTTPS | RewriteCond com HTTPS desligado | server na porta 80 com return 301 para https |
| Com e sem www | RewriteCond no host, mantendo o esquema da requisição | server_name do host de origem e $scheme no destino |
Resultados de referência: redirect 301 (.htaccess e nginx)
| Servidor | Regra para /antigo.html levar a /novo |
|---|---|
| Apache | RedirectMatch 301 ^/antigo\.html$ /novo |
| nginx | location = /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.