我在 Apache 2.4 中苦苦挣扎VirtualDocumentRoot
-我想要一个值,将 TLD 从请求的域更改为不同的域,以映射到磁盘上的文档根目录:
User request: https://one.example.net
Doc root: /var/www/one.example.com
我尝试了各种选项,但 Apache 总是抱怨语法。我最好的猜测是VirtualDocumentRoot /var/www/%-2+%.com
。在伪代码中应该这样写/var/www/, "the penultimate and all preceding parts of the domain", escape character, period, "com"
我猜我的错误在于转义字符。要么是错误的,要么就是根本没有转义字符,而%%
给出文字 % 是一种特殊情况。
有人可以建议一个可行的解决方案吗?
答案1
令人沮丧的是,我在官方文档中找到了答案 - 显然我读得不够仔细......最后的例子说:
If you want to include the . character in a VirtualDocumentRoot directive, but it clashes with a % directive, you can work around the problem in the following way: VirtualDocumentRoot "/usr/local/apache/vhosts/%2.0.%3.0"
因此,对于我的情况,我需要使用VirtualDocumentRoot /var/www/%-2+.0.com
。我的解释是,使用.0
子字符串变量“关闭”变量,允许使用文字.
答案2
你有没有尝试过:
VirtualDocumentRoot /var/www/%-2+\.com