Regex 正则表达式捕获和替换可以与Apache DirectoryMatch指令一起使用吗?
有人知道在Apache的DirectoryMatch指令中是否可以使用正则表达式捕获吗?我想做如下事情:Regex 正则表达式捕获和替换可以与Apache DirectoryMatch指令一起使用吗?,regex,apache,Regex,Apache,有人知道在Apache的DirectoryMatch指令中是否可以使用正则表达式捕获吗?我想做如下事情: <DirectoryMatch ^/home/www/(.*)> AuthType Basic AuthName $1 AuthUserFile /etc/apache2/svn.passwd Require group $1 admin </DirectoryMatch> AuthType Basic AuthName$1 Aut
<DirectoryMatch ^/home/www/(.*)>
AuthType Basic
AuthName $1
AuthUserFile /etc/apache2/svn.passwd
Require group $1 admin
</DirectoryMatch>
AuthType Basic
AuthName$1
AuthUserFile/etc/apache2/svn.passwd
需要组$1管理员
但到目前为止我还没有成功
具体地说,我正在尝试在Apache2.0中为服务器上的各个目录/vhost创建基于组的HTTP身份验证
例如,指向/home/www/A的站点A将对组admin和组A中的所有用户可用,指向/home/www/b的站点b将对组admin和组b中的所有用户可用,等等。我想根据目录名保留所有内容,这样我就可以轻松地编写脚本,将htpasswd用户添加到正确的组中,并尽可能地实现自动化,但解决此问题的其他建议当然是受欢迎的。您尝试执行的操作看起来非常类似。Apache处理这些问题的方式是通过文件系统权限和。我不认为有任何方法可以在附带的指令(AuthName等)中使用regex捕获。您可以从完全不同的角度解决这个问题:启用perl模块,并且可以在httpd.conf中包含一点perl脚本。然后,您可以这样做:
<Perl>
my @groups = qw/ foo bar baz /;
foreach ( @groups ) {
push @PerlConfig, qq| <Directory /home/www/$_> blah </Directory> |;
}
</Perl>
my@groups=qw/foo-bar-baz/;
foreach(@groups){
推@PerlConfig,qq |等等|;
}
这样,您甚至可以从数据库或通过简单的globing/home/www或其他任何您喜欢的方式来读取您的组和其他信息。这非常方便,但几乎“无法阅读”,因为每一个包含Perl和Apache的搜索都会得到大量关于如何将Apache配置为运行cgi脚本的答案。其他苦苦挣扎的谷歌人的参考: