在 apache 配置中使用常量变量

在 apache 配置中使用常量变量
<VirtualHost *:80>
SetEnv SITENAME testing
ServerName www.test.com

# Location of files
DocumentRoot "/www/${SITENAME}/site"
Alias /data "/www/data/${SITENAME}"
Alias /base "/www/${SITENAME}/base/site"

# Logging
ErrorLog "/var/log/httpd/${SITENAME}-error.log"
CustomLog "/var/log/httpd/${SITENAME}-access.log" combined
</VirtualHost>
  • 正在启动 apache2...警告:DocumentRoot [/www/${SITENAME}/site] 不存在

进一步阅读文档可以发现,SetEnv 可能没有足够早地绑定以用于路径,并且建议的替代方案 SetEnvIf 也是基于请求属性的。

我也看到了使用 mod_vhost_alias 的示例,但是它似乎除了 DocumentRoot 之外什么都不处理,而且即使这样也需要使用服务器名称的组件,而这不是我想要的。

我想要的是读取配置时可用的纯变量替换,并且可以在任何字符串中使用(如 C 中的 #DEFINE)。我的 Apache 版本是 2.2。可以做到吗?

更新:我Define在文档中找到了一条指令,但它不起作用(看起来它是 2.3 的新指令)。我想现在的问题是是否有一个模块可以将此或等效功能反向移植到 2.2?

答案1

这个问题之前已经问过了。链接在这里:

在 Apache 配置文件中使用变量来减少重复?

相关内容