# Como corrigir permalinks retornando 404

Permalinks retornando 404 é quando só a página inicial abre e todos os posts e páginas internas dão erro 404. Quase sempre as regras de reescrita do WordPress foram perdidas ou o .htaccess ficou sem as linhas que traduzem as URLs amigáveis para o WordPress.

## O que é os permalinks retornando 404?

O WordPress usa URLs amigáveis, como /meu-post/, em vez do formato com ?p=123. Para isso funcionar, o servidor precisa reescrever a URL e entregar a requisição ao WordPress, usando as regras de reescrita que ficam no .htaccess no Apache ou na configuração do Nginx. Quando essas regras somem ou ficam inválidas, o servidor procura um arquivo ou pasta com aquele nome, não encontra e responde 404. A home funciona porque aponta para a raiz, que existe; as demais URLs dependem da reescrita.

## Como identificar

- Mensagem "404 Not Found" ao abrir qualquer post ou página interna, enquanto a home abre normal.
- Em sites em português, a página de erro "Nada encontrado" ou "Página não encontrada" nos posts.
- O problema surgiu após migrar de servidor, mudar de hospedagem ou editar o .htaccess.
- Trocar a estrutura de links permanentes em Configurações > Links permanentes não resolve sozinho.

**Antes de começar:** Faça backup do .htaccess antes de editá-lo, porque um erro de sintaxe nesse arquivo derruba o site com erro 500. Mantenha a permissão em 644: valores como 666 ou 777 deixam o arquivo gravável por qualquer processo e são um risco de segurança.

## Como prevenir

- Depois de migrar o site, abra Configurações > Links permanentes e salve para recriar o .htaccess no novo servidor
- Mantenha o .htaccess com permissão 644 para o WordPress poder regravar as regras quando precisar
- Em servidores Nginx, documente a diretiva try_files para reaplicá-la em qualquer nova instalação

Erros relacionados

- [Como corrigir Publishing failed / Updating failed (REST API)](https://full.services/wp-fixer/corrigir-publishing-failed-rest-api-wordpress/)
- [Como corrigir o botão Adicionar Mídia que não funciona](https://full.services/wp-fixer/corrigir-adicionar-midia-wordpress/)
- [Como corrigir o editor de blocos (Gutenberg) que não carrega](https://full.services/wp-fixer/corrigir-gutenberg-nao-carrega-wordpress/)

## Causa

- Regras de reescrita do WordPress perdidas após migração, restauração de backup ou troca de servidor.
- Arquivo .htaccess ausente, vazio ou sem o bloco de reescrita que o WordPress precisa no Apache.
- Módulo mod_rewrite do Apache desativado no servidor, impedindo a reescrita das URLs amigáveis.
- Configuração do Nginx sem a diretiva try_files que encaminha a URL para o index.php.
- Permissão de escrita negada no .htaccess, impedindo o WordPress de regravar as regras sozinho.

## Como resolver

1. Regrave os permalinks pelo painel: se você acessa o wp-admin, vá em Configurações > Links permanentes e clique em Salvar alterações sem mudar nada. Isso força o WordPress a recriar as regras de reescrita.
2. Confira o .htaccess: via FTP, abra o .htaccess na raiz do site. Ele precisa conter o bloco padrão do WordPress entre BEGIN WordPress e END WordPress. Se estiver ausente ou vazio, recrie esse bloco.
3. Restaure o bloco padrão: cole o bloco de reescrita padrão do WordPress no .htaccess e salve. Recarregue um post interno para ver se o 404 sumiu.
4. Verifique a permissão do .htaccess: garanta que o .htaccess tenha permissão 644, para o servidor ler e o WordPress conseguir regravá-lo quando você salva os permalinks.
5. No Nginx, ajuste o try_files: se o site roda em Nginx, o .htaccess é ignorado. Peça à hospedagem para incluir a diretiva que encaminha as URLs ao index.php do WordPress no bloco do servidor.

## Código

```apache
# .htaccess na raiz do site — bloco padrao de reescrita do WordPress.
# Substitui ou recria as regras quando os permalinks retornam 404.
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
```

## Perguntas frequentes

### Por que só a página inicial abre e o resto dá 404?

Porque a home aponta para a raiz do site, que sempre existe. Os posts e páginas usam URLs amigáveis que dependem das regras de reescrita. Quando essas regras somem, o servidor procura um arquivo com aquele nome, não acha e responde 404 em tudo, menos na home.

### Salvar os permalinks no painel resolve mesmo?

Na maioria dos casos sim, porque salvar em Configurações > Links permanentes força o WordPress a recriar as regras de reescrita e regravar o .htaccess. Só não resolve se o .htaccess não tiver permissão de escrita ou se o servidor for Nginx, que ignora esse arquivo.

### O que coloco no .htaccess para corrigir os 404?

O bloco padrão do WordPress entre os comentários BEGIN WordPress e END WordPress, com as regras de RewriteRule que encaminham as URLs ao index.php. Cole esse bloco na raiz do site, salve e recarregue um post interno para confirmar.

### Meu site é Nginx e não tem .htaccess. Como resolvo?

No Nginx o .htaccess é ignorado. A reescrita é feita por uma diretiva try_files no bloco do servidor que encaminha as URLs ao index.php do WordPress. Peça à hospedagem para incluir essa regra na configuração do site, já que ela fica fora da pasta do WordPress.

### Recriei o .htaccess e o 404 continua. O que mais pode ser?

Verifique se o módulo mod_rewrite do Apache está ativo, porque sem ele as regras não funcionam. Confirme também a permissão 644 do arquivo e se o AllowOverride está habilitado no servidor. A hospedagem pode checar essas duas configurações.

### Mudar a estrutura de links permanentes apaga meu SEO?

Trocar a estrutura muda as URLs e pode gerar 404 nos links antigos indexados. Se precisar mudar, configure redirecionamentos 301 das URLs antigas para as novas. Para apenas corrigir o 404, mantenha a mesma estrutura e só regrave as regras.

**Fonte:** [WordPress.org — Using Permalinks](https://wordpress.org/documentation/article/using-permalinks/)
