A Captura e a substituição do Regex podem ser usadas com uma diretiva Apache DirectoryMatch?

StackOverflow https://stackoverflow.com/questions/88570

  •  01-07-2019
  •  | 
  •  

Pergunta

Alguém sabe se é possível usar a Capture Regex na diretiva DirectoryMatch da Apache? Eu gostaria de fazer algo como o seguinte:

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

Mas até agora não tive sucesso.

Especificamente, estou tentando criar uma autenticação HTTP baseada em grupo para diretórios/vhosts individuais em um servidor no Apache 2.0.

Por exemplo, o Site A, apontando para/home/www/a estará disponível para todos os usuários no Grupo Admin e Group A, o Site B em/Home/www/b estará disponível para todos os usuários no Admin e Grupo B, etc, etc. . Gostaria de manter tudo com base no nome do diretório, para que eu possa adicionar facilmente os usuários do HTPasswd aos grupos corretos e automatizar isso o máximo possível, mas outras sugestões para resolver o problema certamente são bem -vindas.

Foi útil?

Solução

Você pode resolver o problema de um ângulo completamente diferente: Ative o módulo Perl e pode incluir um pequeno script Perl no seu httpd.conf. Você poderia fazer algo assim:

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

Dessa forma, você pode até ler seus grupos e outras informações de um banco de dados ou simplesmente globando /home /www ou qualquer outra coisa faz cócegas na sua fantasia.

Outras dicas

O que você está tentando fazer parece muito parecido com Diretórios domésticos por usuário. A maneira como o Apache lida com isso é através das permissões do sistema de arquivos e arquivos .htaccess. Não acredito que haja alguma maneira de usar a captura do Regex nas diretivas fechadas (nome de autenticação, etc.).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top