如何避免在 Apache2 VirtualHosts 中的多个目录指令中重复允许/拒绝访问控制语句?

如何避免在 Apache2 VirtualHosts 中的多个目录指令中重复允许/拒绝访问控制语句?

在 Apache2 上,我有一个 VirtualHost,其中包含许多<Directory>包含多个访问控制语句的指令/部分

IE

<Directory /foo>
    Order Deny,Allow
    Deny from all
    Allow from ...
    Allow from ...
    ...
</Directory>
...

有没有办法在更高级别(以上<Directory>)指定访问控制?还是我应该使用宏?

提前致谢!

答案1

如果我理解你的问题,你正在寻找一种方法来将一组允许/拒绝限制应用于一组可能没有共同父级的目录。

您可以将所有允许/拒绝指令放入单独的文件中(将其命名为,/etc/httpd/conf.d/accesslist或任何在您的发行版中有意义的名称),然后使用该Include目录在适当的位置包含这些规则:

<Directory /some/directory>
  Include /etc/httpd/conf.d/accesslist
</Directory>

<Directory /another/directory>
  Include /etc/httpd/conf.d/accesslist
</Directory>

但是如果您的目录都共享一个通用配置,则可以使用类似方法mod_macro创建具有变量替换的可重复使用模板。

相关内容