# Como corrigir um arquivo .htaccess corrompido no WordPress

Um .htaccess corrompido no WordPress é o arquivo de configuração do Apache com regras inválidas ou conflitantes. Ele derruba o site com erro 500, quebra os permalinks (404 em todas as páginas) ou bloqueia o acesso. Restaurar o conteúdo padrão resolve.

## O que é o .htaccess corrompido no WordPress?

O .htaccess é um arquivo de configuração que o servidor Apache lê na raiz do WordPress para controlar permalinks, redirecionamentos, regras de segurança e cache. Quando esse arquivo fica corrompido, por uma diretiva com erro de sintaxe, regras duplicadas de plugins ou um módulo do Apache que não existe no servidor, o Apache rejeita a requisição. O resultado é um erro 500 (Internal Server Error), permalinks retornando 404 em todo o site ou acesso bloqueado. Como o WordPress sabe regenerar o .htaccess padrão, restaurar o bloco oficial costuma resolver na hora.

## Como identificar

- O site inteiro mostra "500 Internal Server Error" logo após instalar um plugin de cache, segurança ou redirecionamento.
- A home abre, mas todos os posts e páginas internas retornam "404 Not Found".
- Aparece "Internal Server Error: The server encountered an internal error or misconfiguration" em tela branca.
- Os logs do servidor citam "Invalid command" ou ".htaccess: ... not allowed here" apontando uma linha do arquivo.

**Antes de começar:** Sempre baixe uma cópia do .htaccess antes de substituí-lo: ele pode conter redirecionamentos 301 e regras de segurança importantes que você vai querer recolocar. Edite o arquivo em um editor de texto puro (sem formatação) para não introduzir caracteres invisíveis.

## Como prevenir

- Guarde um backup do .htaccess sempre que ele for editado por você ou por um plugin
- Use editores de texto puro (sem rich text) ao editar o .htaccess para não inserir caracteres invisíveis
- Após instalar plugins de cache ou segurança, confira o .htaccess para garantir que as regras não duplicaram

Erros relacionados

- [Como aumentar o limite de memória PHP no WordPress](https://full.services/wp-fixer/aumentar-limite-memoria-php-wordpress/)
- [Como corrigir Maximum Execution Time Exceeded](https://full.services/wp-fixer/corrigir-maximum-execution-time-wordpress/)
- [Como corrigir upload_max_filesize excedido](https://full.services/wp-fixer/corrigir-upload-max-filesize-wordpress/)

## Causa

- Diretiva com erro de sintaxe gravada por um plugin de cache, segurança ou redirecionamento.
- Regras de reescrita duplicadas (mais de um bloco # BEGIN WordPress) brigando entre si.
- Diretiva que exige um módulo Apache ausente no servidor (ex.: mod_rewrite ou mod_headers desativado).
- Edição manual do .htaccess com um caractere ou bloco quebrado salvo por engano.
- Migração entre servidores trazendo regras incompatíveis (caminhos absolutos ou IfModule de outro host).

## Como resolver

1. Faça backup do .htaccess atual: via FTP, baixe o .htaccess da raiz do site e renomeie a cópia no servidor para .htaccess_old. Isso o desativa na hora e guarda o conteúdo para inspeção depois.
2. Teste se o site volta sem ele: com o arquivo renomeado, recarregue o site. Se o erro 500 sumir, a corrupção estava mesmo no .htaccess e basta gerar um novo limpo.
3. Crie um .htaccess padrão: crie um novo arquivo .htaccess na raiz com o bloco oficial do WordPress (veja o código abaixo). Esse é o conteúdo mínimo que faz os permalinks funcionarem.
4. Regenere pelo painel: no wp-admin, vá em Configurações > Links permanentes e clique em "Salvar alterações" sem mudar nada. O WordPress reescreve o bloco de permalinks no .htaccess automaticamente.
5. Reative os plugins um a um: se o problema voltou após um plugin específico de cache ou segurança, reative-os um a um e confira o .htaccess após cada um para identificar qual grava a regra inválida.

## Código

```apache
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
```

## Perguntas frequentes

### Onde fica o arquivo .htaccess no WordPress?

Na raiz da instalação, a mesma pasta que contém o wp-config.php e o wp-content. Como começa com ponto, é um arquivo oculto: ative "mostrar arquivos ocultos" no seu cliente FTP ou no gerenciador de arquivos do painel para vê-lo.

### Apaguei o .htaccess. O WordPress cria outro sozinho?

Sim. Em Configurações > Links permanentes, ao clicar em "Salvar alterações", o WordPress regenera o bloco padrão de permalinks. Se o servidor não permitir a escrita do arquivo, o painel mostra o conteúdo para você colar manualmente via FTP.

### Como sei que o problema é o .htaccess e não outra coisa?

Renomeie o .htaccess para .htaccess_old via FTP e recarregue o site. Se o erro 500 ou os 404 sumirem, a causa estava no arquivo. Se o problema continuar, ele está em outro lugar (PHP, plugin, banco) e você pode restaurar o .htaccess original.

### Por que só as páginas internas dão 404 e a home funciona?

Porque a home costuma carregar pelo index.php direto, mas os posts e páginas dependem das regras de reescrita do .htaccess para resolver os permalinks. Se essas regras se perderam ou quebraram, o Apache não sabe rotear as URLs e devolve 404.

### Posso ter mais de um bloco WordPress no .htaccess?

Não deve. Um único bloco entre # BEGIN WordPress e # END WordPress basta. Blocos duplicados (de migrações ou edições) brigam entre si e quebram os permalinks. Mantenha apenas um e deixe regras de plugins fora dele, em seus próprios blocos identificados.

### O .htaccess corrompido pode causar erro de segurança?

Pode. Se o arquivo perdeu regras de proteção (como bloqueio do wp-config.php ou da pasta de uploads), o site fica mais exposto. Por isso, ao restaurar o padrão, recoloque também as regras de segurança que você usava, em vez de descartá-las junto com a versão corrompida.

**Fonte:** [WordPress.org — htaccess (Using Permalinks: WordPress default .htaccess)](https://wordpress.org/documentation/article/htaccess/)
