比如说我有这样的配置
<VirtualHost 127.0.0.1:80>
DocumentRoot "path/to/docroot"
<Directory /path/to/docroot/private>
#blah
</Directory>
<Directory /path/to/docroot>
#blah
</Directory>
<Directory /path/to/docroot/anotherdir>
#blah
</Directory>
</VirtualHost>
我经常使用 /path/to/docroot 限定路径。我希望能够仅在文件头部声明一次 /path/to/docroot 的路径值,并找到一种方法来声明相对于该路径的后续目录指令。
我能做这样的事吗?(Pretend Var 是一个虚构的指令,可让您声明路径值,然后稍后引用它)
<VirtualHost 127.0.0.1:80>
Var DocRoot "path/to/docroot"
DocumentRoot DocRoot
<Directory DocRoot/Private>
#blah
</Directory>
<Directory DocRoot>
#blah
</Directory>
<Directory DocRoot/anotherdir>
#blah
</Directory>
</VirtualHost>
有没有什么类似的东西我可以用?谢谢!
答案1
mod_env用于设置可传递给 CGI 和 SSI 页面的变量。据我所知,您想要执行的操作不一定有任何本机支持。
一个解决方案是使用第三方模块mod_macro,这将允许更动态地生成 httpd.conf,但这并不是您所寻求的。
<perl>
如果您安装了 mod_perl,则可以使用和将 perl 代码嵌入到 httpd.conf 中</perl>
,这将允许更动态的 httpd.conf。mod_perl 在启动时执行它。如果您尚未运行 mod_perl,则引入的开销是不值得的。
第三个选项是使用一组脚本动态生成配置,这些脚本完全在 Apache 之外。对于此特定应用程序,Perl 是一种非常有用的语言。