Apache Auth指令级联到别名目录

我在虚拟主机configuration文件的Apache <Directory>上下文中有一个相当长的授权configuration指令块。
它具有LDAP凭据和一个复杂的filter,在vhostconfiguration文件中重现会很烦人。

这是一个简单的例子:

 ServerName server.domain.com DocumentRoot /var/www/server.domain.com <Directory /var/www/server.domain.com/> AllowOverride FileInfo Options +ExecCGI # PASSWORD PROTECT AuthType Basic AuthBasicProvider ldap file AuthName "INTERNAL" AuthLDAPURL ldap://xxx AuthLDAPBindDN uid=xxx,cn=xxx AuthLDAPBindPassword xxx AuthzLDAPAuthoritative on AuthUserFile /var/www/server.domain.com/.htpasswd Require valid-user </Directory> Alias /alias1 /var/www/alias1.domain.com <Directory /var/www/alias1.domain.com> # ? </Directory> Alias /alias2 /var/www/alias2.domain.com <Directory /var/www/alias2.domain.com> # ? </Directory> Alias /alias3 /var/www/alias3.domain.com <Directory /var/www/alias3.domain.com> # ? </Directory> </VirtualHost> 

现在,因为大部分Auth*指令都必须在Directory.htaccess上下文中使用,所以我面临着不得不重复完整的AuthTypeRequire valid-user添加每个Alias Require valid-user块。

我能想到的唯一方法就是将auth部分分割成单独的文件并使用Include引用。

作为一个解决scheme, Include将工作正常,易于维护。

有没有另外一种方式,这使得更清洁的虚拟主机configuration文件重复性较低?
以防万一在Apache中做这样的事情,在过去的15年里我还没有find。

编辑:我应该指出,我使用Alias的原因是为了方便部署,我不想重新创build符号链接,每当我重新构buildDocumentRoot目录。 我意识到,虽然使用符号链接和Location将提供级联,我会寻找避免重复。
我想我遇到的问题更多的是这样一个事实,即Alias需要一个匹配的Directory块来限制访问。

你可以使用mod_authn_alias来分组和重用一些指令,但我认为这不会有多大帮助。 你仍然需要重复很多的指令。

根据我的经验,“ Include解决scheme运行良好,易于维护。

你可以申请你的authnz指令到/ var / www? 这将消除需要为每个子目录分别指定它们。 如果没有的话,也许你可以把需要authnz的站点移动到一个子目录中,比如/ var / www / authnz,然后把设置只应用到那个目录。