È possibile utilizzare l'acquisizione e la sostituzione di espressioni regolari con una direttiva Apache DirectoryMatch?

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

  •  01-07-2019
  •  | 
  •  

Domanda

Qualcuno sa se è possibile utilizzare l'acquisizione regex all'interno della direttiva DirectoryMatch di Apache?Mi piacerebbe fare qualcosa come il seguente:

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

ma finora non ho avuto successo.

Nello specifico, sto cercando di creare un'autenticazione HTTP basata su gruppo per singole directory/vhost su un server in Apache 2.0.

Ad esempio, il sito A, che punta a /home/www/a, sarà disponibile per tutti gli utenti del gruppo admin e del gruppo a, il sito b in /home/www/b sarà disponibile per tutti gli utenti del gruppo admin e del gruppo b, ecc. .Mi piacerebbe mantenere tutto basato sul nome della directory in modo da poter facilmente creare script per aggiungere utenti htpasswd ai gruppi corretti e automatizzarlo il più possibile, ma altri suggerimenti per risolvere il problema sono sicuramente benvenuti.

È stato utile?

Soluzione

Potresti affrontare il problema da un’angolazione completamente diversa:abilita il modulo perl e puoi includere un piccolo script perl nel tuo httpd.conf.Potresti quindi fare qualcosa del genere:

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

In questo modo, potresti anche leggere i tuoi gruppi e altre informazioni da un database o semplicemente digitando /home/www o qualsiasi altra cosa stuzzichi la tua fantasia.

Altri suggerimenti

Quello che stai cercando di fare sembra molto simile directory home per utente.Il modo in cui Apache li gestisce è attraverso i permessi del file system e file .htaccess.Non credo che ci sia un modo per utilizzare l'acquisizione regex nelle direttive allegate (AuthName, ecc.).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top