Como corrigir permalink quebrado após migração para HTTPS
O que é o permalink quebrado após migração para HTTPS?
Permalink e a URL permanente de cada conteúdo do WordPress. Após migrar o site de http para https, o permalink quebra quando o WordPress ainda conhece o endereco antigo: o banco guarda a URL em http, o .htaccess perdeu as regras de reescrita ou ha um redirecionamento que entra em loop. O conteúdo existe, mas as URLs internas apontam para o protocolo errado ou não resolvem.
Como identificar
- As páginas internas retornam 404, embora a home abra normalmente em https.
- O navegador mostra “ERR_TOO_MANY_REDIRECTS” por um loop entre http e https.
- Links e recursos no conteúdo ainda apontam para http, gerando aviso de conteúdo misto.
- O cadeado de segurança não aparece porque parte da página carrega via http antigo.
Como prevenir
- Faca o search-replace de http para https no banco como parte do processo de migração para SSL
- Mantenha uma única fonte de redirect http para https (so o .htaccess ou so um plugin), nunca as duas
- Após qualquer migração, re-salve os links permanentes para reescrever as regras do .htaccess no novo ambiente
Causa
- URL antiga em http (siteurl/home e links no conteúdo) ainda gravada no banco de dados.
- .htaccess sem as regras de reescrita do WordPress após a migração, retornando 404 nas URLs internas.
- Redirecionamento http para https mal configurado (no .htaccess ou plugin) criando loop infinito.
- Plugin de SSL forcando https em conflito com um redirect já existente no servidor.
- Estrutura de links permanentes não re-salva no novo ambiente, deixando as regras de URL desatualizadas.
Como resolver
- Re-salve os links permanentes: em Configurações > Links permanentes, clique em Salvar sem mudar nada para reescrever o .htaccess com as regras de reescrita. Resolve a maioria dos 404 após migração.
- Atualize a URL para https: em Configurações > Geral, deixe a URL do WordPress e do site identicas em https. Se não consegue entrar, force com WP_HOME e WP_SITEURL no wp-config.php.
- Faca o search-replace de http para https: troque http por https em todo o banco preservando serializados, com WP-CLI search-replace ou Better Search Replace, para corrigir links internos e conteúdo misto.
- Revise o redirecionamento: garanta uma única regra de http para https no .htaccess e remova redirects duplicados de plugins de SSL para acabar com o loop ERR_TOO_MANY_REDIRECTS.
- Limpe o cache: limpe o cache do plugin de cache e do CDN para servir as URLs https corrigidas e não a versão antiga em http.
# .htaccess - regras padrao do WordPress + redirect unico de http para https
# Coloque o redirect ANTES do bloco do WordPress para evitar loop
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>














