<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
这个问题之前已经问过了。链接在这里: