Puede regex la captura y sustitución ser utilizado con un Apache DirectoryMatch directiva?

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

  •  01-07-2019
  •  | 
  •  

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.

¿Fue útil?

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).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top