Можно ли использовать захват и замену регулярных выражений с помощью директивы Apache DirectoryMatch? - PullRequest
5 голосов
/ 18 сентября 2008

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

<DirectoryMatch ^/home/www/(.*)>
    AuthType Basic
    AuthName $1
    AuthUserFile /etc/apache2/svn.passwd
    Require group $1 admin
</DirectoryMatch>

но пока у меня нет успеха.

В частности, я пытаюсь создать HTTP-аутентификацию на основе группы для отдельных каталогов / vhosts на сервере в Apache 2.0.

Например, сайт A, указывающий на / home / www / a, будет доступен всем пользователям в группе admin и группе a, сайт b по адресу / home / www / b будет доступен всем пользователям в группе admin и группе b и т. д. Я бы хотел, чтобы все было основано на имени каталога, чтобы я мог легко создавать сценарии добавления пользователей htpasswd в нужные группы и максимально автоматизировать это, но другие предложения по решению проблемы, безусловно, приветствуются.

Ответы [ 2 ]

3 голосов
/ 18 сентября 2008

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

<Perl>
my @groups = qw/ foo bar baz /;
foreach ( @groups ) {
    push @PerlConfig, qq| <Directory /home/www/$_> blah </Directory> |;
}
</Perl>

Таким образом, вы могли бы даже читать свои группы и другую информацию из базы данных или просто нажав / home / www или что-то еще, что щекочет ваше воображение.

0 голосов
/ 18 сентября 2008

То, что вы пытаетесь сделать, очень похоже на домашних каталогов для пользователя . Apache обрабатывает их через разрешения файловой системы и .htaccess файлов . Я не верю, что в прилагаемых директивах есть способ захвата регулярных выражений (AuthName и т. Д.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...