Apache、目录指令和相对路径

Apache、目录指令和相对路径

比如说我有这样的配置

<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 是一种非常有用的语言。

相关内容