Можно использовать ShellExView для отключения дополнений контекстного меню.
Я не попробовал Ваш определенный вариант использования, но Вы могли бы хотеть экспериментировать с mod_perl и:
<Perl>
foreach (</sites/*/*/users.file>) {
my $loc = $_;
$loc =~ s/^\/sites(.*)\/users\.file/$1/;
$Location{$loc} = {
AuthType => "Basic",
AuthName => "Secure area",
AuthUserFile => $_,
};
}
</Perl>
Необходимо будет все еще перезагрузить Apache каждый раз, когда Вы добавляете новый "users.file" все же. Если действительно необходимо сделать это динамично, необходимо создать PerlAuthenHandler вместо этого:
<Location /> # we need for any request to the site
PerlAuthenHandler MyApache2::DynamicAuthUserFile
AuthType Basic
AuthName "Secure area"
</Location>
и a MyApache2/DynamicAuthUserFile.pm
сценарий, подобный этому:
package MyApache2::DynamicAuthUserFile;
use strict;
use warnings;
use Apache::RequestRec ();
use Apache::Access ();
use Apache::Const -compile => qw(OK DECLINED);
sub handler {
my $r = shift;
my ($status, $password) = $r->get_basic_auth_pw;
return $status if $status != Apache::OK;
my $user = $r->user;
my $file = $r->uri;
$file =~ s|^/sites/([^/]*/[^/])*|$1/users.file|;
if (open(P, $file)) {
while (<P>) {
chomp;
next if /^#/;
my ($name,$saved_pw) = split /:/;
next if $user ne $name;
if ($saved_pw ne crypt($passwd,$saved_pw)) {
last;
}
return Apache::Const::OK;
}
close P;
}
return Apache::Const::DECLINED;
}
1;
Вы означали направлять Запросы HTTP согласно сайту к другому DocumentRoot, ScriptAlias и CustomLog, или Вам нужно что-то более сложное? Вы могли предоставить больше подробную информацию о своих директивах Местоположения?
Что-то стоящее попробовать могло бы быть mod_macro (http://www.coelho.net/mod_macro/)
Вы уже посмотрели на использование <LocationMatch>
?
Это - regex старший брат <Location>
. Если существует достаточно структуры к Вашим существующим директивам затем, должно быть возможно соответствовать им единственному regex.