
🔗 Como redefinir os permalinks do WordPress: 3 formas de corrigir um erro 404
Conhece a sensação: abre um site e vê um ecrã branco com o temido 404. A página inicial carrega bem, o painel de administração funciona, mas o artigo ou a página em si não. Verifica o URL, volta a gravar o conteúdo, limpa a cache do plugin e nada resolve.
Nove em cada dez vezes, a causa raiz são as regras de reescrita do WordPress corrompidas. Os permalinks deixaram de resolver e o CMS não consegue determinar que conteúdo mostrar naquele endereço. Boas notícias: isto resolve-se num minuto, sem plugins nem alterações de código.
Abaixo encontrará três métodos para repor os permalinks: do mais simples (alguns cliques no painel de administração) à intervenção manual na base de dados via phpMyAdmin. Após a reposição, o erro 404 desaparece e a estrutura de URL permanece intacta.
💡 Resumo rápido:
- Aceda ao painel de administração do WordPress e clique em «Guardar alterações» na página de Permalinks.
- Adicione uma linha de código ao functions.php do seu tema, atualize o site e remova a linha.
- Limpe o campo rewrite_rules na tabela wp_options via phpMyAdmin.
- Verifique o resultado: abra a página problemática e confirme que o 404 desapareceu.
O que são permalinks e porque precisa de os repor
Permalinks são URLs legíveis para páginas e artigos do WordPress. Em vez de ?p=123, vê /blog/how-to-reset-permalinks/. A transformação é gerida pelo mecanismo de regras de reescrita, um conjunto de regras que o CMS armazena na base de dados e (com determinadas configurações) no ficheiro .htaccess.
Ao adicionar um novo tipo de conteúdo, alterar a estrutura de links ou após migrar um site, as regras de reescrita podem não ser atualizadas automaticamente. O WordPress continua a usar as regras antigas em cache e uma página que existe fisicamente devolve 404. Um flush força a reconstrução das regras de reescrita a partir do zero: elimina as regras armazenadas e gera as atuais.
Isto não é «apagar» permalinks; a estrutura de URL definida nas configurações permanece inalterada. Apenas a cache interna das regras de encaminhamento muda. A operação é completamente segura: temas, plugins e conteúdo não são afetados.
Método 1. Através do painel do WordPress
O método mais rápido e seguro é a reposição através do painel de administração. Utilize-o quando o painel estiver acessível.
- Inicie sessão na consola do WordPress:
your-site.com/wp-admin. - Navegue para Configurações → Permalinks.
- Não altere nada nas configurações, apenas desça a página.
- Clique no botão azul «Guardar alterações».

O WordPress irá reconstruir silenciosamente as regras de reescrita e atualizar o .htaccess (se for utilizado). Não aparecerá nenhuma notificação de sucesso; basta abrir a página problemática num novo separador do navegador e verificar se o erro desapareceu.
Porque é que isto funciona? Quando clica em «Guardar alterações», o CMS chama a função interna flush_rewrite_rules(), a mesma que os programadores usam no código. A única diferença é a forma como é acionada: aqui clica com o rato em vez de escrever PHP.
Este método resolve o problema na grande maioria dos casos. Se não resultar, avance para o método 2.
Método 2. Através do functions.php do tema
Se o painel de administração não carregar ou o botão «Guardar» não produzir resultado, reponha as regras programaticamente. Precisará de acesso aos ficheiros do site: via FTP, gestor de ficheiros do alojamento ou editor de temas integrado.
Importante: flush_rewrite_rules() é uma operação pesada. Reconstrói toda a estrutura de URL e abranda visivelmente o site se for chamada em cada visita. Portanto, vamos adicionar a função uma vez, atualizar o site e remover imediatamente a linha.
- Abra o ficheiro
functions.phpdo tema ativo. Caminho:/wp-content/themes/your-theme/functions.php. - No final do ficheiro, antes do fecho
?>(se existir), adicione uma linha:
1 flush_rewrite_rules();
- Guarde o ficheiro.
- Atualize qualquer página do site no navegador; a função será executada na primeira visita.
- Abra novamente o
functions.phpe elimine a linha que adicionou. Este passo é obrigatório.

A função correu uma vez, as regras foram reconstruídas, o código foi removido e o site funciona normalmente sem carga extra. Os criadores de plugins usam a mesma abordagem: flush_rewrite_rules() é ligada ao hook de ativação, não a cada pedido.
Uma alternativa para quem prefere não mexer diretamente no functions.php: o plugin Code Snippets. Crie um novo snippet com o mesmo código, execute-o uma vez (o botão «Executar») e elimine-o. O resultado é idêntico.
Método 3. Via phpMyAdmin, reposição direta das regras na base de dados
O nível mais profundo é limpar manualmente as regras de reescrita diretamente na tabela wp_options. Use este método quando não tem acesso ao painel de administração nem aos ficheiros do tema (por exemplo, um ecrã branco da morte em todo o site, exceto na base de dados).
Certifique-se de fazer uma cópia de segurança da base de dados antes de qualquer alteração no phpMyAdmin. Uma única ação errada no editor SQL pode danificar o site de forma irreversível.
- Abra o phpMyAdmin através do painel de alojamento (cPanel, ISPmanager, DirectAdmin) na secção «Bases de dados».
- Na coluna da esquerda, selecione a base de dados do seu site WordPress.
- Vá ao separador SQL no menu superior.
- Cole a consulta no campo de texto e clique em «Executar»:
1 SELECT * FROM wp_options WHERE option_name = 'rewrite_rules'
- Os resultados mostrarão uma única linha. Clique em «Editar» (o ícone do lápis) ao lado.
- Encontre o campo
option_valueque contém um texto longo com dados serializados. Selecione todo o conteúdo do campo, elimine-o e guarde.

No próximo carregamento de página, o WordPress detetará o valor rewrite_rules vazio, perceberá que não há regras e irá gerá-las automaticamente. Não precisa de executar mais nada.
Nota: em algumas configurações de alojamento, o prefixo da tabela pode ser diferente de wp_. Se o seu prefixo for diferente (por exemplo, wpxy_), substitua wp_options por wpxy_options. Pode verificar o prefixo no ficheiro wp-config.php, na linha $table_prefix.
Vídeo: reposição de permalinks na prática
Se prefere ver em vez de ler, este vídeo demonstra todo o processo de reposição de permalinks usando o primeiro método, desde o início de sessão no painel de administração até à verificação do resultado:
⁉️🤔 Perguntas frequentes
Os meus URLs vão desaparecer após repor os permalinks?
Não. Um flush não altera a estrutura de links definida em «Configurações → Permalinks». Apenas reconstrói a cache interna das regras de encaminhamento. Todos os seus endereços como
/blog/,/product/e/category/permanecerão exatamente iguais. A exceção é se tiver alterado manualmente a estrutura nas configurações antes de guardar; nesse caso, os URLs serão reconstruídos de acordo com o novo modelo.
Preciso de instalar um plugin para repor os permalinks?
Para uma operação única, definitivamente não. Os três métodos acima cobrem todos os cenários sem software adicional. Plugins como o Rewrite Rules Inspector só fazem sentido se registar regularmente tipos de conteúdo e taxonomias personalizados em código e quiser ver o estado das regras em tempo real. Para uma simples correção de 404, é um exagero.
A reposição via painel de administração não resultou. E agora?
Verifique se o ficheiro
.htaccessestá a ser substituído por outro plugin (cache, segurança, SEO). Desative temporariamente os plugins suspeitos e repita a reposição. Se não resultar, avance para o método 2 (PHP); ele garante a chamada da mesma funçãoflush_rewrite_rules()ignorando quaisquer filtros do administrador.
Posso repor as regras via WP-CLI?
Sim, se o WP-CLI estiver instalado no servidor, o comando
wp rewrite flushfaz exatamente o mesmo a partir da linha de comandos. Este é o método mais rápido para programadores que trabalham via SSH. Executa instantaneamente, não requer a abertura de um navegador e não deixa vestígios no código do tema.
O que devo fazer se o erro 404 persistir após a reposição?
A causa não são os permalinks. Verifique três coisas: (1) se a página ou artigo em si foi fisicamente eliminado, (2) se o slug entra em conflito com outro conteúdo ou uma taxonomia, (3) se os pedidos estão a ser bloqueados por um ficheiro
.htaccesscom regras de redirecionamento incorretas. Neste último caso, renomeie temporariamente o.htaccesspara.htaccess.bak, guarde os permalinks via painel de administração (o WordPress criará um novo.htaccess) e verifique novamente.
Repôs os links, e agora?
Efetuou a reposição usando um dos três métodos e a página abriu. Ótimo. Mas se um 404 apareceu uma vez, pode voltar: após uma atualização de plugin, uma mudança de tema ou edições em tipos de conteúdo personalizados. Marque este guia nos favoritos; agora já sabe o primeiro método (o botão «Guardar» no painel de administração) de cor e pode executá-lo em dez segundos.
E a regra principal ao trabalhar com a base de dados: antes de qualquer intervenção, faça uma cópia de segurança. O phpMyAdmin não perdoa erros, mas uma cópia de segurança da base de dados traz o site de volta à vida em poucos minutos.



