Puede regex la captura y sustitución ser utilizado con un Apache DirectoryMatch directiva?
Pregunta
¿Alguien sabe si es posible usar regex de captura dentro de Apache DirectoryMatch directiva?Me gustaría hacer algo como lo siguiente:
<DirectoryMatch ^/home/www/(.*)>
AuthType Basic
AuthName $1
AuthUserFile /etc/apache2/svn.passwd
Require group $1 admin
</DirectoryMatch>
pero hasta ahora no he tenido ningún éxito.
Específicamente, estoy tratando de crear un grupo basado en HTTP Auth directorios individuales/vhosts en un servidor de Apache 2.0.
Por ejemplo, el Sitio, apuntando a /home/www/a estará disponible para todos los usuarios en el administrador del grupo y del grupo a, el sitio b en /home/www/b estará disponible para todos los usuarios en el administrador del grupo y el grupo b, etc.Me gustaría seguir con todo lo basado en el nombre del directorio, así que puede script añadiendo htpasswd los usuarios a los grupos correctos y automatizar esto tanto como sea posible, pero otras sugerencias para resolver el problema son sin duda bienvenida.
Solución
Usted podría abordar el problema desde un ángulo completamente diferente:habilitar el módulo de perl y puede incluir un pequeño script en perl en tu httpd.conf.Entonces, usted puede hacer algo como esto:
<Perl>
my @groups = qw/ foo bar baz /;
foreach ( @groups ) {
push @PerlConfig, qq| <Directory /home/www/$_> blah </Directory> |;
}
</Perl>
De esa manera, incluso podrían leer tus grupos y otro tipo de información de una base de datos o simplemente englobamiento de /home/www o cualquier otra cosa que le hace cosquillas a su fantasía.
Otros consejos
Lo que usted está tratando de hacer es muy similar a por directorios home de los usuarios.La forma en que Apache se encarga de estos es a través de permisos de sistema de archivo y .archivos htaccess.Yo no creo que hay alguna forma de usar regex de captura en el contenido de las directivas (AuthName, etc).