Ограничить доступ к веб-корню apache2, но разрешить его для подпапок

Мне нужно ограничить доступ по паролю к моему веб-корневому тестовому серверу Apache (то есть http: // localhost ), но разрешить доступ к подпапкам (то есть: http: // localhost / testsite [ 111])

Я создал .htpasswd и .htaccess и поместил .htaccess в корень сети (http: // localhost), поэтому при попытке доступа к корню сети он запрашивает пользователя и пароль, но то же самое происходит в подпапках (т. е. при попытке доступа к http: // localhost / testite )

Я хочу, чтобы у меня запрашивали пароль в веб-корне, но не в подпапках.

Это возможно?

2
задан 31 March 2012 в 03:05

2 ответа

кажется, что вы сказали Apache требовать пароль для вашего веб-корня, но вы сделали Apache не требующим его для всех других каталогов?

Внутри вашего .htaccess (или в httpd.conf они выполняют ту же работу) у вас, вероятно, есть что-то похожее на то, что ниже (добавьте вставную ссылку в ваш файл .htaccess, и я могу сделать это точно):

<Directory "/www/private">
   Order allow,deny
   Allow from all

   Options Indexes
   AuthType Basic
   AuthName "Private Access"
   AuthUserFile "/www/private/.htpasswd"
   Require valid-user
</Directory>

Но это будет применяться ко всем каталогам по этому пути, а также. В противном случае вам нужно будет явно указать Apache.

<Directory "/var/private/subdir">
    Satisfy any
</Directory>

Вы можете использовать регулярные выражения с <DirectoryMatch "regex">, чтобы обобщить это, только не забудьте защититься от asdf.com/subdir/../ выражений.

ОБНОВЛЕНИЕ: Стоит также упомянуть, что, хотя большая часть документации уже содержит директивы <Directory[Match]>, существуют также директивы <Location[Match]>, которые полезны в случае символических ссылок в базовой файловой системе.

0
ответ дан 31 March 2012 в 03:05

В Apache 2.4 мы можем использовать директиву LocationMatch и регулярное выражение.

# Require a password to access to the root path with or without a forward slash
<LocationMatch "^/?$">
    Order Allow,Deny
    Options Indexes
    AuthType Basic
    AuthName "Private Access"
    AuthUserFile "/www/private/.htpasswd"
    Require valid-user
</LocationMatch>
0
ответ дан 30 January 2020 в 23:00

Другие вопросы по тегам:

Похожие вопросы: