Как настроить BasicAuth везде, КРОМЕ определенных каталогов

Как настроить BasicAuth везде, КРОМЕ определенных каталогов

Когда дело доходит до настройки защиты BasicAuth для конкретного каталога, я использую простую настройку (в apache2.confфайле):

<Directory /var/www/somedir/>
Deny from all
AuthUserFile /var/pswd/somedir/.htpasswd
AuthName authorization
AuthType Basic
Satisfy Any
require valid-user
</Directory>

Но я хотел бы установить BasicAuth везде на сервере по умолчанию и разблокировать его только для определенных каталогов (сайтов, доменов).

Итак, как можно установить BasicAuth везде на сервере, за исключением определенных каталогов?

решение1

Любое последующее определение должно переопределять предыдущее определение в файлах конфигурации Apache. Попробуйте следующее, это должно исправить.

<Directory /var/www/>
  Order deny,allow
  Deny from all
  AuthUserFile /var/pswd/somedir/.htpasswd
  AuthName authorization
  AuthType Basic
  Satisfy Any
  require valid-user
</Directory>

Alias /path/to/opendir/ /public
<Directory /var/www/opendir/>
  Allow from all
</Directory>

Вы также можете использовать .htaccessдля управления этим, добавив:

Override Auth
Allow from all
Satisfy any

Для получения более подробной информации смотрите: здесь,здесь,здесь&здесь

решение2

Это для вашей основной аутентификации.

<Directory /var/www/somedir/>
    Order deny,allow
    Deny from all
    AuthName "User Authentication"
    AuthType Basic
    AuthUserFile /var/pswd/somedir/.htpasswd
    Require valid-user
</Directory>

это для исключения вашей папки

<Directory /var/www/somedir/accessibleDir/>
    Allow from all 
</Directory>

Чтобы добавить пользователя в список пользователей, используйте:

htpasswd -b -m /var/pswd/somedir/.htpasswd {User} {Pass}

Постарайтесь не использовать .htaccess, если можете, чтобы уменьшить доступ к жесткому диску, таким образом вы увеличите производительность своего веб-сайта.

Связанный контент