Permitir, Negar ou Exigir Todos em .htaccess para Diferentes Versões do Apache

2

Quando queremos bloquear bots, referrers de spam usando o arquivo .htaccess, alguns sites usam a seguinte sintaxe de código:

Order allow,deny
Allow from all
Deny from env=spambot

Mas alguns sites dizem que precisamos usar códigos diferentes para versões diferentes do Apache:

#For Apache 2.2
<IfModule !mod_authz_core.c>
<IfModule mod_authz_host.c>
    Order allow,deny
    Allow from all
    Deny from env=spambot
</IfModule>
</IfModule>

# For Apache 2.4
<IfModule mod_authz_core.c>
<RequireAll>
    Require all granted
    Require not env spambot
</RequireAll>
</IfModule>

Agora eu quero qual cone está correto ou ambos estão corretos?

    
por TSA 28.08.2017 / 12:31

1 resposta

2

we need to use different codes for different Apache versions

Isso.

A sintaxe mudou do Apache 2.2 para o 2.4. No entanto, a antiga sintaxe (Apache 2.2) foi mantida (na verdade, ela foi movida para um módulo diferente: mod_access_compat ) apenas para compatibilidade retroativa - por isso, ainda "funciona". Mas ele está obsoleto e provavelmente será removido em versões futuras. Então, o código no Apache 2.4 deve usar a sintaxe Require ... .

    
por 28.08.2017 / 13:31

Tags