Corrigindo o erro HTTP 405 Method Not Allowed

Um erro 405 Method Not Allowed significa que o servidor web entendeu sua solicitação, mas recusou o método HTTP que você usou. Uma solicitação GET atingiu um endpoint que aceita apenas POST; um plugin de segurança bloqueou chamadas PUT do editor de blocos; uma regra no .htaccess removeu o DELETE. O servidor sabe o que você quer, mas não vai processar dessa forma.

Resposta rápida: No WordPress, a causa mais comum de um erro 405 é um plugin de segurança bloqueando chamadas PUT ou DELETE do editor Gutenberg, ou uma diretiva LimitExcept no .htaccess. A primeira correção mais rápida é Configurações > Links Permanentes > Salvar alterações para regenerar o .htaccess. Se isso não ajudar, desative os plugins de segurança um de cada vez para isolar o responsável pelo bloqueio. Em nossos testes, redefinir o .htaccess via Configurações > Links Permanentes > Salvar resolve o erro na maioria dos casos em que nenhum plugin de segurança está instalado.

Erro 405 Not Allowed no Nginx

Onde o Erro 405 Aparece?

Use esta tabela para ir direto à causa mais provável antes de percorrer cada etapa.

Onde o erro aparece Causa mais provável
O editor de blocos falha ao salvar um post Plugin de segurança bloqueando PUT ou DELETE
Formulário de contato ou checkout no front-end Plugin de formulário enviando o método HTTP errado
Endpoint da REST API ou comando WP-CLI Regra LimitExcept no .htaccess
Site inteiro ou áreas específicas do admin Diretiva Nginx ou Apache no nível do servidor

Antes de fazer qualquer alteração, faça backup do seu site para poder reverter rapidamente caso algo dê errado. O WP Staging oferece backups automáticos com restaurações em um clique. Consulte o guia de backup e restauração para instruções de configuração.

Configuração Incorreta de LimitExcept no .htaccess

Uma diretiva LimitExcept no .htaccess limita quais métodos HTTP o servidor aceita em um determinado caminho. Um exemplo comum:

<LimitExcept GET POST>
  Deny from all
</LimitExcept>

Isso bloqueia PUT, DELETE e PATCH, que a REST API do WordPress e o Gutenberg usam para atualizações e operações em massa. Um .htaccess ao qual um plugin de segurança ou uma edição manual adicionou essa diretiva costuma ser o culpado quando o 405 aparece pela primeira vez após a instalação de um plugin ou uma mudança de configuração no cPanel.

Diagnóstico: Verifique o log de erros do seu servidor em busca de linhas contendo 405 (Method Not Allowed) em caminhos da REST API (/wp-json/...). Se você as encontrar ali, uma regra LimitExcept é quase certamente a causa.

Correção: Redefina o arquivo .htaccess

Faça login no cPanel da sua hospedagem e abra o Gerenciador de Arquivos.

Gerenciador de arquivos do cPanel

Navegue até o diretório raiz da sua instalação do WordPress, geralmente public_html ou www.

Pasta public_html

Localize o arquivo .htaccess no diretório raiz.

Visualizar arquivo .htaccess

Clique com o botão direito no arquivo .htaccess e selecione Download para salvar um backup no seu computador.

Baixar arquivo .htaccess

Clique com o botão direito no arquivo novamente, escolha Renomear e renomeie-o para .htaccess.bak. Isso o desativa temporariamente sem excluí-lo.

Renomear arquivo .htaccess para solucionar o erro 501

Com o .htaccess antigo desativado, vá para Configurações > Links Permanentes no painel do WordPress e clique em Salvar alterações. O WordPress regenera um .htaccess limpo, sem nenhuma regra problemática.

Salvar links permanentes do WordPress para corrigir o erro HTTP 501 not implemented

Verifique seu site. Se o erro 405 desapareceu, abra o antigo .htaccess.bak e compare-o linha por linha com o novo arquivo para encontrar a diretiva LimitExcept. Remova-a do backup e renomeie-o de volta para .htaccess, ou mantenha a versão regenerada.

Se você usa Nginx, o .htaccess não tem efeito. Verifique o nginx.conf em busca de diretivas limit_except ou deny equivalentes no bloco server ou location do seu site.

Plugin de Segurança Bloqueando Métodos HTTP

Pelos tickets de suporte do WP STAGING, o gatilho de 405 mais comum em uma instalação WordPress em funcionamento é o firewall de um plugin de segurança bloqueando solicitações PUT ou DELETE do editor de blocos. Plugins como Wordfence e Sucuri permitem restringir quais métodos HTTP o servidor aceita. Quando bloqueiam PUT ou DELETE, as solicitações de salvamento do Gutenberg falham com um 405 e o editor exibe um erro genérico de salvamento.

Diagnóstico: Desative temporariamente seu plugin de segurança e tente salvar o post novamente. Se o 405 desaparecer, o plugin é a causa.

Correção: Identifique o plugin que está bloqueando

Faça login no painel do WordPress e vá para Plugins.

Selecionar plugins no painel do WordPress

Selecione todos os plugins ativos, abra o menu suspenso Ações em massa no topo, escolha Desativar e clique em Aplicar.

Desativar plugins para solucionar o erro HTTP 501 not implemented no WordPress

Depois de desativar todos os plugins, verifique se o erro 405 desapareceu. Se sim, reative cada plugin um por um, testando seu site após cada reativação, até o erro voltar. Esse é o plugin que está bloqueando a solicitação.

Depois de identificá-lo, verifique as configurações de firewall ou de método HTTP do plugin. No Wordfence, procure em Firewall > All Firewall Options os métodos HTTP permitidos e confirme que PUT e DELETE estão incluídos. No Sucuri, procure nas configurações de Hardening por qualquer restrição de método HTTP.

Configuração do Servidor (Nginx e Apache)

Um 405 que persiste após redefinir o .htaccess e desativar os plugins geralmente aponta para a configuração do servidor web. No Apache, as diretivas Limit e LimitExcept dentro de um arquivo de configuração de virtual host podem bloquear métodos em todo o site. No Nginx, um bloco limit_except GET POST {} no bloco server ou location tem o mesmo efeito.

Diagnóstico: Verifique os logs do seu servidor

Os logs de acesso registram cada solicitação com o código de status HTTP. Os logs de erro capturam por que o servidor rejeitou a solicitação. Procure por linhas contendo 405 ou method not allowed perto do caminho que retornou o erro.

A maioria dos painéis de controle de hospedagem compartilhada expõe os logs em uma seção Logs ou Metrics. Em um VPS ou servidor dedicado, verifique /var/log/apache2/error.log ou /var/log/nginx/error.log.

Correção: Atualize a configuração do servidor

No Apache, localize o arquivo de configuração do virtual host do seu site (normalmente em /etc/apache2/sites-enabled/) e procure por blocos <Limit> ou <LimitExcept>. Adicione os métodos HTTP necessários ou remova a restrição.

No Nginx, encontre o bloco limit_except dentro do bloco server do seu site e adicione os métodos que faltam, ou remova o bloco se sua configuração não o exigir.

Depois de editar a configuração, recarregue o servidor:

# Apache
sudo systemctl reload apache2

# Nginx
sudo systemctl reload nginx

Na hospedagem compartilhada, você não pode editar a configuração global do servidor diretamente. Entre em contato com o suporte da sua hospedagem e descreva os métodos HTTP bloqueados e o caminho de URL específico que está retornando 405.

Restrições de Método da REST API do WordPress

O WordPress usa a REST API para salvamentos do Gutenberg, operações de sincronização de plugins e comandos WP-CLI. Se a REST API estiver desativada, ou se um hook de plugin ou tema estiver rejeitando métodos HTTP específicos, você verá erros 405 em caminhos que começam com /wp-json/.

Em nossos testes, os erros de método da REST API no editor de blocos são causados, na maioria das vezes, por uma combinação de um filtro de autenticação REST em um plugin ou tema e a lista de métodos permitidos de um plugin de segurança. Ativar o modo de depuração mostra qual componente está rejeitando a solicitação.

Correção: Ative o modo de depuração do WordPress para rastrear o erro

Abra o wp-config.php, altere define('WP_DEBUG', false) para define('WP_DEBUG', true) e também adicione define('WP_DEBUG_LOG', true) para gravar os erros em wp-content/debug.log. Salve o arquivo.

Ativar debug.log e modo de depuração do WordPress em wp-config.php

Reproduza o erro 405, depois abra o wp-content/debug.log e procure por erros de autenticação da REST API ou conflitos de filtro. Quando encontrar o hook ou plugin responsável, atualize suas configurações ou entre em contato com o autor do plugin.

Restaure o WP_DEBUG para false após a solução de problemas.

Para instruções de configuração, veja como ativar o log de depuração do WordPress.

Plugin de Formulário de Contato Enviando o Método HTTP Errado

Alguns plugins de formulário de contato e de checkout enviam dados por meio de uma solicitação GET para um endpoint que aceita apenas POST, ou usam um método não padrão que o servidor não aceita. Isso produz um 405 no front-end, e não no admin.

Pelo suporte do WP STAGING, esse padrão aparece quando uma atualização de plugin muda a URL do endpoint de envio sem atualizar o atributo de método do formulário. O plugin começa a enviar solicitações para o novo endpoint usando o método antigo, e o servidor retorna 405.

Diagnóstico: Abra o DevTools do navegador (F12), vá para a aba Network e envie o formulário. Encontre a solicitação que retorna 405. Verifique a coluna Method: se ela mostrar GET para um formulário que deveria usar POST, ou qualquer outro método inesperado, o plugin está mal configurado.

Correção: Primeiro, atualize o plugin para a versão mais recente. Se o erro persistir, verifique nas configurações do plugin se há uma opção de método do formulário ou de URL de envio e confirme que ela corresponde ao que o servidor aceita. Se o plugin não tiver essa configuração, entre em contato com o autor do plugin informando o método da solicitação e a URL da aba Network.

Solução de Problemas Geral

Se nenhuma das correções específicas por causa acima resolveu o erro, siga estas etapas na ordem.

Recarregue a Página

Uma falha temporária do servidor ou um cache desatualizado do navegador pode produzir um 405 pontual. Faça uma atualização forçada com Ctrl + Shift + R no Windows ou Command + Shift + R no macOS para forçar uma nova solicitação.

Verifique Erros na URL

Confira a URL em busca de erros de digitação, barras extras ou caracteres mal posicionados. Uma URL malformada pode direcionar para um endpoint que não aceita o método que você enviou.

Reverta Quaisquer Alterações Recentes

Se o 405 apareceu após uma atualização de plugin, tema ou do núcleo do WordPress, reverta essa alteração. Para plugins, o WP Rollback pode restaurar uma versão anterior. Teste seu site após cada reversão para confirmar qual atualização introduziu o erro.

Inspecione Modificações Recentes no Banco de Dados

Um plugin ou tema que grava no banco de dados pode, ocasionalmente, atrapalhar o roteamento das solicitações. Para verificar alterações inesperadas:

  1. Faça login no cPanel e abra o phpMyAdmin.
otimizar o banco de dados WordPress com phpMyAdmin no cPanel
  1. Selecione o banco de dados associado à sua instalação do WordPress na barra lateral esquerda.
Inspecionar modificações recentes do banco de dados para corrigir 405 Method Not Allowed

Procure por tabelas órfãs de plugins recentemente desinstalados em wp_options e wp_usermeta. Remova quaisquer linhas remanescentes e verifique se o 405 desaparece.

Mude para um Tema Padrão

Um tema que registra incorretamente uma rota da REST API pode produzir um 405 nesses caminhos. Mudar para um tema padrão incluído no WordPress descarta essa possibilidade.

Vá para Aparência > Temas no seu painel e ative um tema padrão do WordPress.

Mudar para o tema padrão para solucionar o erro HTTP 501

Se o 405 desaparecer com o tema padrão ativo, o problema está no seu tema original. Revise quaisquer chamadas personalizadas de register_rest_route no functions.php do tema, ou entre em contato com o autor do tema.

O Que Fazer se a Correção Não Funcionar

Se o 405 persistir depois de percorrer todas as seções acima, um CDN ou proxy reverso posicionado entre o navegador do visitante e o seu servidor pode estar removendo ou reescrevendo o método HTTP antes que a solicitação chegue ao WordPress.

Verifique se há uma camada de CDN ou WAF. O painel de controle da sua hospedagem ou o dashboard do seu provedor de DNS costuma mostrar se um CDN ou Web Application Firewall está ativo. Se estiver, verifique as regras do firewall em busca de listas de métodos HTTP permitidos. Os serviços de CDN muitas vezes têm regras que permitem apenas GET e POST, o que retorna 405 para PUT, DELETE ou PATCH antes que a solicitação chegue ao WordPress.

Revise as configurações do balanceador de carga. Se o seu site funciona atrás de um balanceador de carga, verifique se a configuração do listener ou do backend não está rejeitando métodos HTTP não padrão.

Ignore temporariamente o proxy para isolar a origem. Se você conseguir direcionar uma solicitação de teste diretamente ao seu servidor de origem e o 405 desaparecer, o proxy está filtrando o método. Trabalhe com o seu provedor de CDN ou administrador de sistema para ajustar a lista de métodos permitidos.

Conclusão

Um erro 405 Method Not Allowed no WordPress tem um pequeno conjunto de causas raiz: uma diretiva LimitExcept no .htaccess, um plugin de segurança bloqueando métodos da REST API, uma regra de configuração no nível do servidor, um plugin enviando o método HTTP errado, ou um CDN filtrando as solicitações mais acima. Percorrer cada causa na ordem, começando pela redefinição do .htaccess, resolve o problema na maioria dos casos.

Se você precisar reverter após uma alteração malsucedida, o guia de backup e restauração do WP Staging mostra a recuperação em poucos cliques.

Artigos Relacionados

Rene Hermenau

Autor: Rene Hermenau

Sobre o autor: René Hermenau é o fundador do WP STAGING. Ele trabalha com backups do WordPress, ambientes de staging, migrações, gestão de bases de dados e fluxos de implantação seguros.