Como corrigir o conflito de cache entre All in One Security e WP Rocket
O que é conflito AIOS WP Rocket?
O conflito AIOS WP Rocket ocorre porque os dois plugins disputam o mesmo arquivo .htaccess e a mesma camada de requisicao. O All in One Security grava regras de firewall e de Cookie Based Brute Force Prevention no .htaccess, e o WP Rocket grava o próprio bloco de cache e compressao no mesmo arquivo. Quando o WP Rocket cacheia a página de login que o AIOS protege com cookie, o visitante recebe uma versão estática sem o cookie de autorizacao e e redirecionado, ou a área administrativa para de responder.
Como identificar
- Mensagem ‘Error: cookies are blocked or not supported by your browser’ ao tentar entrar no wp-admin depois de ativar o WP Rocket
- A página de login protegida pelo AIOS abre em loop de redirecionamento ou retorna a home em vez do formulário
- WP Rocket exibe ‘This page is not cached’ ou não gera cache em páginas do front-end, porque o AIOS define a constante DONOTCACHEPAGE
- Erro 500 Internal Server Error logo após salvar configurações do firewall do AIOS, com dois blocos concorrentes visiveis no .htaccess
- Aviso no painel do WP Rocket informando que o arquivo .htaccess não pode ser gravado quando o AIOS marca a permissão do arquivo como somente leitura
Antes de começar: Editar o .htaccess errado derruba o site inteiro com erro 500. Mantenha o backup .htaccess.bak ao alcance e tenha acesso por FTP aberto em outra aba para restaurar caso o login pare de responder.
Como prevenir
- Defina sempre a tela de login e o wp-admin como Never Cache URL no WP Rocket logo após instalar qualquer plugin de segurança que proteja o login
- Ative um plugin de cache de cada vez e revise o .htaccess depois de cada salvamento de configuração do AIOS para confirmar a ordem dos blocos
- Use o recurso de exportar configurações do AIOS antes de ativar a Cookie Based Brute Force Prevention, para reverter rápido se o conflito reaparecer
- Evite combinar o Rename Login Page do AIOS com cache agressivo sem registrar o slug customizado na lista de URLs nunca cacheadas
Causa
- A opção Cookie Based Brute Force Prevention do AIOS, em WP Security -> Firewall -> Brute Force Prevention, exige um cookie de secret word para liberar a tela de login, e o WP Rocket serve uma copia em cache dessa tela sem o cookie, redirecionando o usuário.
- O AIOS escreve o próprio bloco de regras de firewall no inicio do arquivo .htaccess da raiz e o WP Rocket escreve o bloco BEGIN WP Rocket no mesmo arquivo; quando a ordem se inverte após um salvamento, o servidor retorna erro 500.
- O módulo de firewall do AIOS define a constante DONOTCACHEPAGE em requisicoes que considera sensiveis, e o WP Rocket respeita essa constante e deixa de gerar o cache da página.
- O recurso Rename Login Page do AIOS, em WP Security -> Brute Force -> Rename Login Page, muda a URL de login para um slug customizado que não esta na lista de URLs nunca cacheadas do WP Rocket, fazendo o WP Rocket entregar a versão estática errada.
- O AIOS marca o arquivo .htaccess como somente leitura na opção de proteção de arquivos do sistema, impedindo que o WP Rocket atualize o próprio bloco de regras durante a limpeza de cache.
Como resolver
- Faca backup do .htaccess antes de mexer: Baixe o arquivo .htaccess da raiz por FTP ou pelo gerenciador de arquivos da hospedagem e guarde uma copia local. Os dois plugins reescrevem esse arquivo, entao um backup garante o retorno rápido caso o servidor pare de responder.
cp /public_html/.htaccess /public_html/.htaccess.bak - Exclua a área de login e admin do cache do WP Rocket: No WP Rocket abra a aba Advanced Rules e adicione a tela de login e o wp-admin a lista Never Cache URL(s). Isso impede que a página protegida pelo cookie do AIOS seja servida estática sem o cookie de autorizacao.
/wp-login.php /wp-admin/(.*) /seu-slug-de-login-renomeado/(.*) - Exclua o cookie do AIOS para impedir cache da sessao protegida: Ainda na aba Advanced Rules do WP Rocket, no campo Never Cache Cookies, informe o nome do cookie que o AIOS cria com o secret word. Com isso o WP Rocket nunca cacheia a resposta de quem tem o cookie de acesso ao login.
aiowps_login_secret - Ordene os blocos no .htaccess colocando o AIOS antes do WP Rocket: Abra o .htaccess da raiz e garanta que o bloco do AIOS fique acima do bloco BEGIN WP Rocket. As regras de segurança precisam ser avaliadas antes das regras de cache, o que elimina o erro 500 causado pela ordem invertida.
# BEGIN All In One WP Security - # ... regras de firewall do AIOS ...
# END All In One WP Security # BEGIN WP Rocket v3 - # ... regras de cache e compressao ...
# END WP Rocket - Libere a permissão do .htaccess e limpe o cache: No AIOS, em WP Security -> Filesystem Security, desative a proteção que deixa o .htaccess somente leitura, depois limpe o cache do WP Rocket e teste o login em uma janela anonima. Sem a permissão de escrita o WP Rocket não consegue regravar o próprio bloco.
chmod 644 /public_html/.htaccess
APACHE
# BEGIN All In One WP Security
# As regras de firewall do AIOS devem vir ANTES do bloco do WP Rocket
<Files ".htaccess">
Require all denied
</Files>
# END All In One WP Security
# BEGIN WP Rocket v3
<IfModule mod_setenvif.c>
# Nao serve cache para sessao com o cookie de login do AIOS
SetEnvIf Cookie "aiowps_login_secret" DONOTCACHE=1
</IfModule>
# END WP Rocket
Perguntas frequentes
Por que o WP Rocket para de gerar cache depois que ativo o AIOS?
Porque o módulo de firewall do AIOS define a constante DONOTCACHEPAGE em requisicoes que considera sensiveis, e o WP Rocket respeita essa constante e não cria o arquivo de cache. Exclua a área de login do cache e o front-end volta a ser cacheado normalmente.
O conflito entre AIOS e WP Rocket pode quebrar meu login?
Sim. Se o WP Rocket cacheia a tela de login protegida pela Cookie Based Brute Force Prevention do AIOS, o visitante recebe a versão estática sem o cookie de secret word e e redirecionado, ficando preso fora do wp-admin até a área de login ser excluida do cache.
Preciso desativar o AIOS para usar o WP Rocket?
Não. Os dois plugins convivem desde que a tela de login e o wp-admin estejam na lista Never Cache URL do WP Rocket e o cookie do AIOS esteja em Never Cache Cookies. A segurança do firewall continua ativa enquanto o cache atende apenas o conteúdo público.
Por que aparece erro 500 logo após salvar o firewall do AIOS?
O erro 500 surge quando o bloco de regras do AIOS fica abaixo do bloco BEGIN WP Rocket no .htaccess, criando diretivas concorrentes. Coloque o bloco do AIOS acima do bloco do WP Rocket e o servidor volta a responder.
O que e a Cookie Based Brute Force Prevention do AIOS?
E um recurso do All in One Security que esconde a tela de login atras de uma URL com uma secret word. Ao acessar essa URL, um cookie e gravado no navegador e libera o formulário de login; sem o cookie, o visitante e redirecionado para outra página.
O Rename Login Page do AIOS também entra em conflito com o cache?
Sim. Quando o AIOS renomeia a URL de login para um slug customizado, esse slug não esta na lista de URLs nunca cacheadas do WP Rocket, e o cache acaba servindo a versão errada. Adicione o slug renomeado as Never Cache URL para resolver.
Onde fica a opção de exclusão de cache no WP Rocket?
Na aba Advanced Rules do painel do WP Rocket, você encontra os campos Never Cache URL(s) e Never Cache Cookies. E ali que se isola a área de login protegida pelo AIOS do cache de páginas.
Como reverter o conflito sem perder as duas configurações?
Restaure o backup .htaccess.bak que você salvou antes de editar, reative os plugins um de cada vez e aplique as exclusoes de cache. Assim você mantem o firewall do AIOS e o cache do WP Rocket sem precisar reconfigurar do zero.














