Назад | Перейти на главную страницу

Разрешить, запретить или требовать все в .htaccess для разных версий Apache

Когда мы хотим заблокировать ботов, рефереры спама, использующие файл .htaccess, некоторые веб-сайты используют следующий синтаксис кода:

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

Но некоторые веб-сайты говорят, что нам нужно использовать разные коды для разных версий 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>

Теперь я хочу, какой конус правильный или оба правильны?

нам нужно использовать разные коды для разных версий Apache

Это.

Синтаксис изменен с Apache 2.2 на 2.4. Однако старый синтаксис (Apache 2.2) был сохранен (фактически, он был перенесен в другой модуль: mod_access_compat) для только обратная совместимость - так что все еще «работает». Но он устарел и, вероятно, будет удален в будущих версиях. Итак, код на Apache 2.4 должен использовать Require ... синтаксис.