5

Apache の DirectoryMatch ディレクティブ内で正規表現キャプチャを使用できるかどうかを知っている人はいますか? 次のようなことをしたいと思います。

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

しかし、これまでのところ私は成功していません。

具体的には、Apache 2.0 のサーバー上の個々のディレクトリ/仮想ホストに対して、グループベースの HTTP 認証を作成しようとしています。

たとえば、/home/www/a を指すサイト A はグループ admin とグループ a のすべてのユーザーが利用でき、/home/www/b のサイト b はグループ admin とグループ b のすべてのユーザーが利用できます。ディレクトリ名に基づいてすべてを維持したいので、htpasswdユーザーを正しいグループに追加するスクリプトを簡単に作成し、これを可能な限り自動化できますが、問題を解決するための他の提案は大歓迎です.

4

2 に答える 2

3

完全に別の角度から問題に取り組むことができます。perl モジュールを有効にすると、httpd.conf に小さな perl スクリプトを含めることができます。次に、次のようなことができます。

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

そうすれば、データベースからグループやその他の情報を読み取ることもできますし、単純に /home/www などの好きなものをグロブすることによっても読み取ることができます。

于 2008-09-18T10:43:08.617 に答える
0

あなたがやろうとしていることは、ユーザーごとのホームディレクトリに非常に似ています。Apache がこれらを処理する方法は、ファイル システムのアクセス許可と.htaccess ファイルを使用することです。同封のディレクティブ(AuthNameなど)で正規表現キャプチャを使用する方法はないと思います。

于 2008-09-17T23:33:49.163 に答える