我正在尝试了解如何创建尾随特定目录的子域名,例如,我转到http://sub.mydomain.com
,它应该带我到 的根目录/var/www/sub
。http://randomdir.mydomain.com
应该带我到/var/www/randomdir
。
我遵循了 SF 上的很多答案,但都没有帮助。基本上,我*.mydomain.com
几天前所做的就是创建了一个通配符 A 记录,现在我添加了一个虚拟主机,/etc/apache2/sites-enabled/mydomain.com.conf
其中包含以下内容:
<VirtualHost *:80>
ServerName mydomain.com
ServerAlias www.mydomain.com
DocumentRoot /var/www/
</VirtualHost>
<VirtualHost *:80>
ServerName cake.mydomain.com
ServerAlias *.mydomain.com
DocumentRoot /var/www/%1
</VirtualHost>
但是,当重新启动 apache2 时,我得到以下返回信息:
Warning: DocumentRoot [/var/www/%1] does not exist
apache2: Could not reliably determine the server's fully qualified domain name, using xxx.xxx.xxx.xxx for ServerName
... waiting Warning: DocumentRoot [/var/www/%1] does not exist
apache2: Could not reliably determine the server's fully qualified domain name, using xxx.xxx.xxx.xxx for ServerName
如何设法创建指向基于域前缀的目录的通配符子域?
答案1
将您的DocumentRoot /var/www/%1
指令更改为VirtualDocumentRoot /var/www/%1
。
答案2
这个文件,动态配置的海量虚拟主机似乎完全涵盖了您想要做的事情。
涵盖 VirtualDocumentRoot 指令的领域在mod_vhost_alias文档页面,您可能会特别感兴趣。