![在 Amazon EC2 上设置 Ubuntu Server,用于托管带有通配符子域名的多个域名](https://linux22.com/image/587512/%E5%9C%A8%20Amazon%20EC2%20%E4%B8%8A%E8%AE%BE%E7%BD%AE%20Ubuntu%20Server%EF%BC%8C%E7%94%A8%E4%BA%8E%E6%89%98%E7%AE%A1%E5%B8%A6%E6%9C%89%E9%80%9A%E9%85%8D%E7%AC%A6%E5%AD%90%E5%9F%9F%E5%90%8D%E7%9A%84%E5%A4%9A%E4%B8%AA%E5%9F%9F%E5%90%8D.png)
我正在尝试在运行 Ubuntu Server 12.04 的 Amazon EC2 微型实例上设置多个域。我正确安装了 Apache 并设置了虚拟主机,但通配符子域存在问题。
这是我的 httpd.conf 文件的样子
NameVirtualHost *:80
<VirtualHost *:80>
UseCanonicalName Off
VirtualDocumentRoot /home/username/domains/%0/html/
</VirtualHost>
我的 DNS 记录(在 Amazon Route 53 上)是:
domain.tld A 1.2.3.4
*.domain.tld A 1.2.3.4
如果我创建一个带有子目录test.domain.tld
的目录,它工作正常。但是,如果访问的子域没有目录,html
我想做的是重定向*.domain.tld
到。我还想重定向到。如果我决定在服务器上托管另一个网站,系统也应该可以工作。domain.tld
www.domain.tld
domain.tld
example.com
我尝试用 Google 搜索了很多次,但没有任何结果。有什么建议吗?
答案1
您可以尝试使用mod_rewrite检查文档根目录是否存在,如果不存在则发送重定向。
RewriteCond %{DOCUMENT_ROOT} ! -d
RewriteRule .* http://domain.tld/ [R]