У меня такая структура:
_auth/
->.htpasswd
website1/
website2/
website3/
.htaccess
Я хочу добавить AuthType Basic к моему .htaccess в корневом каталоге, чтобы webiste1 / и website2 / требовали аутентификации, а website3 / оставались доступными без него. У всех трех сайтов есть собственный домен.
Я попытался:
<directory "/website1">
AuthType Basic
AuthName "Protected Area"
AuthUserFile "_auth/.htpasswd"
Require valid-user
</directory>
<directory "/website2">
AuthType Basic
AuthName "Protected Area"
AuthUserFile "_auth/.htpasswd"
Require valid-user
</directory>
Но это не работает
Вы не можете использовать <Directory>
контейнеры в .htaccess
файлы. (The .htaccess
сам файл по сути каталог контейнер и каталог контейнеры не могут быть вложенными.)
Предполагая, что вы используете Apache 2.4 и /website1
и /website2
появляются как часть запрошенного URL-пути, тогда вы можете использовать выражение Apache.
Например:
<If "%{REQUEST_URI} =~ m#^/(website1|website2)/#">
AuthType Basic
AuthName "Protected Area"
AuthUserFile "_auth/.htpasswd"
Require valid-user
</If>
Обратите внимание, что Путь файла _auth/.htpasswd
рассматривается как относительный к определенному ServerRoot. В противном случае вам следует указать абсолютный путь к файловой системе, например:
AuthUserFile "/abs/path/to/_auth/.htpasswd"