Как выполнить «AuthType None» в Apache 2.2 - PullRequest
40 голосов
/ 15 апреля 2010

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

Тип аутентификации Нет отключает аутентификация. Когда аутентификация включен, обычно наследуется каждый последующий раздел конфигурации, если другой тип аутентификации указано. Если нет аутентификации желательно для подраздела аутентифицированный раздел, тип аутентификации 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>

Ответы [ 6 ]

99 голосов
/ 25 мая 2011

Что-то вроде ниже работает для меня с 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>
8 голосов
/ 08 августа 2012

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

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

Alias /example "/opt/example.com"

<Directory "/opt/example.com">
  Options None
  AllowOverride None
  Order allow,deny
  Allow from all
  Satisfy Any
</Directory>
7 голосов
/ 22 апреля 2010
<Directory /www/docs/public>
AuthType None
Require all granted
Satisfy Any
</Directory>

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

2 голосов
/ 21 июня 2017

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

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

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

Satisfy Any
Allow from all

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

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

Allow from all
Satisfy Any

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

1 голос
/ 28 июля 2011

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

    <Location /trac>
       #....
       AuthType Basic
       AuthName "BLA domain"
       AuthUserFile /etc/.passwd
       Require valid-user
       Allow from all
       Satisfy Any
    </Location>
1 голос
/ 24 августа 2010

Я думаю, что вы правы: это не поддерживается в 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>

или

<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>
...