%20com%20arquivo%20.htaccess%20atualizado.png)
Estou usando um plugin para um dos meus sites que atualizei recentemente. Desde que atualizei, sempre recebo uma mensagem de acesso negado (Erro 403) ao abrir o magnalister.php do plugin. Quando substituo o novo arquivo .htaccess pelo antigo, não tenho problemas. Aqui está o conteúdo dos arquivos:
Antes de atualizar:
<Files magnalister.php>
Order Deny,Allow
Allow from all
</Files>
<Files magnaCallback.php>
Order Deny,Allow
Allow from all
</Files>
Após a atualização:
<Files magnalister.php>
<IfModule !mod_authz_core.c>
Order Deny,Allow
Allow from all
</IfModule>
<IfModule mod_authz_core.c>
Require all granted
</IfModule>
</Files>
<Files magnaCallback.php>
<IfModule !mod_authz_core.c>
Order Deny,Allow
Allow from all
</IfModule>
<IfModule mod_authz_core.c>
Require all granted
</IfModule>
</Files>
No log de erros do PHP recebo o seguinte:
[Wed Sep 12 00:25:05 2018] [access_compat:error] [pid 7437] [client ***] [host ***] AH01797: client denied by server configuration: /is/htdocs/***/www/testshop3/plugins/magnalister/magnalister.php
Estou usando o Apache/2.4.10.
Qual é o motivo do erro 403 com a versão atualizada?
Responder1
Onde você estánegandoacesso? Esse parece ser o problema. Suspeito que você ainda esteja negando acesso às "antigas" diretivas do Apache 2.2 em outras partes da configuração do Apache e isso está tendo precedência.
Todas as diretrizes que você postou apenaspermitiracesso, entãoalgo maisna sua configuração está negando acesso a esse arquivo.
Você atualizou sua .htaccess
configuração para funcionar com os módulos mod_authz_core/host do Apache 2.4. No entanto, no Apache 2.4, se outra parte da sua configuração ainda estiver usando as Deny
diretivas antigas (parte do mod_access_compact no Apache 2.4 e mod_authz_host no Apache 2.2), essas diretivas "antigas" terão prioridade sobre as "novas" diretivas do Apache 2.4 no .htaccess
, apesar da aparente ordem em sua configuração, o acesso ainda será negado.
Como observado noDocumentos do Apache em atualização para 2.4 a partir de 2.2:
...misturar diretivas antigas e novas [pode] levar a resultados inesperados. ... Porque as diretivas mod_access_compat têm precedência sobre mod_authz_host ...
Portanto, se você ainda estiver usando as diretivas "antigas" em outras partes da sua configuração (para negar acesso), elas precisam ser atualizadas para usar as diretivas equivalentes do Apache 2.4.
Isso parece ser confirmado pelo erro que você está vendo, que é acionado por mod_access_compact, em oposição a mod_authz_core, como seria de esperar no Apache 2.4.
[Quarta, 12 de setembro 00:25:05 2018] [access_compat:erro] [pid 7437] [cliente...] [host...] AH01797: cliente negado pela configuração do servidor: /is/htdocs/.../www/testshop3/plugins/magnalister/magnalister.php
(Aparte:Você diz que está usando o Apache 2.4. Você realmente precisa manter a compatibilidade com versões anteriores do Apache 2.2, como está fazendo no .htaccess
? Manter ambas as configurações só será mais difícil de manter e mais sujeito a erros.)