Как выполнить AuthType None в Apache 2.2

http://httpd.apache.org/docs/trunk/mod/mod_authn_core.html#authtype говорит об "AuthType None" и содержит отличный пример именно того, что мне нужно сделать - к сожалению, он кажется новым для 2.3/2.4. Есть ли аналогичная функция в 2.2?

Тип аутентификации None отключает аутентификацию. Когда аутентификация включена, она обычно наследуется каждым последующим разделом конфигурации, если не указан другой тип аутентификации. Если для подраздела аутентифицированного раздела не требуется аутентификация, можно использовать тип аутентификации None; в следующем примере клиенты могут получить доступ к каталогу /www/docs/public без аутентификации:

<Directory /www/docs> 
AuthType Basic
AuthName Documents
AuthBasicProvider file
AuthUserFile /usr/local/apache/passwd/passwords
Require valid-user 
</Directory>

<Directory /www/docs/public>
AuthType None
Require all granted
</Directory>

person Technorati    schedule 14.04.2010    source источник


Ответы (6)


Что-то вроде ниже работает для меня с apache 2.2. Я взял его с http://httpd.apache.org/docs/2.2/mod/core.html#require

<Directory /www/docs>
    AuthType Basic
    AuthName Documents
    AuthBasicProvider file
    AuthUserFile /usr/local/apache/passwd/passwords
    Require valid-user 
</Directory>
<Directory /www/docs/public>
    # All access controls and authentication are disabled
    # in this directory
    Satisfy Any
    Allow from all
</Directory>
person Frank Henard    schedule 25.05.2011
comment
@Technorati, может быть, вам уже стоит подумать о том, чтобы принять ответ? Это решение отлично работало для меня до сих пор. - person amn; 10.11.2011
comment
Если вы хотите разрешить только определенные файлы, вы можете вложить директиву Files в родительскую директиву Directory. Однако это невозможно сделать с помощью ‹Directory› - person balping; 13.03.2017

Вам просто нужно установить Разрешить от всех и Удовлетворить любой

Это сработало для меня:

Alias /example "/opt/example.com"

<Directory "/opt/example.com">
  Options None
  AllowOverride None
  Order allow,deny
  Allow from all
  Satisfy Any
</Directory>
person Gustavo Soares    schedule 07.08.2012

<Directory /www/docs/public>
AuthType None
Require all granted
Satisfy Any
</Directory>

Это будет работать

person Medvedus    schedule 22.04.2010

Просто хотел добавить немного информации:

В Apache 2.2.22 вам нужно, чтобы порядок работал правильно:

Это не сработало для меня для местоположения "/foo/sub":

Satisfy Any
Allow from all

То есть аутентификация из местоположения «/foo», определенного до «/foo/sub», по-прежнему применялась.

Это работает для местоположения "/foo/sub":

Allow from all
Satisfy Any

т.е. аутентификация из местоположения "/foo", определенного до "/foo/sub", была аннулирована.

person Bob    schedule 21.06.2017

Я думаю, вы правы: он не поддерживается в apache 2.2.

Я бы попробовал уродливый обходной путь на https://issues.apache.org/bugzilla/show_bug.cgi?id=10932

Что-то типа:

<DirectoryMatch "^/www/docs/(?!public)"> 
AuthType Basic
AuthName Documents
AuthBasicProvider file
AuthUserFile /usr/local/apache/passwd/passwords
Require valid-user 
</Directory>

or

<DirectoryMatch "^/www/docs/[^p][^u][^b][^l][^i][^c]"> 
AuthType Basic
AuthName Documents
AuthBasicProvider file
AuthUserFile /usr/local/apache/passwd/passwords
Require valid-user 
</Directory>
person Marc MAURICE    schedule 24.08.2010

Это сработало для меня на apache2.2:

    <Location /trac>
       #....
       AuthType Basic
       AuthName "BLA domain"
       AuthUserFile /etc/.passwd
       Require valid-user
       Allow from all
       Satisfy Any
    </Location>
person xvga    schedule 28.07.2011