VirtualHost - 将所有域指向根文件夹,将一个域指向根文件夹中的子文件夹

Posted

技术标签:

【中文标题】VirtualHost - 将所有域指向根文件夹,将一个域指向根文件夹中的子文件夹【英文标题】:VirtualHost - point all domains to root folder and one domain to a subfolder in the root folder 【发布时间】:2014-06-19 06:33:11 【问题描述】:

我已经尝试过了,但这里似乎没有什么对我有用。我有一个设置了多个域的 Apache 服务器。目前它们都指向根文件夹(C:\xampp\htdocs),但我想在这里组织得更好一些。我想使用 Apache 的 VirtualHost 将每个新域指向该文件夹内的子文件夹,但同时让所有旧网站指向 C:\xampp\htdocs,直到我可以迁移每个域。

问题是当我使用以下代码时,我的所有域都指向子文件夹

# Listen for virtual host requests on all IP addresses
NameVirtualHost *:80

<VirtualHost *:80>
    DocumentRoot "C:\xampp\htdocs\newdomain\"
    ServerName www.newdomain.com
</VirtualHost>

我需要添加一个 Virtual 来监听所有其他域并将它们指向 C:\xampp\htdocs 但我的想法已经不多了。请帮忙

【问题讨论】:

【参考方案1】:

试试看:

# Listen for virtual host requests on all IP addresses
NameVirtualHost *:80
<VirtualHost *:80>
    DocumentRoot "C:\xampp\htdocs"
    ServerName _default_
</VirtualHost>
<VirtualHost *:80>
    DocumentRoot "C:\xampp\htdocs\newdomain"
    ServerName www.newdomain.com
</VirtualHost>

你需要一个默认虚拟主机,这就是 catch_all 的事情,当 HTTP 查询中定义的主机头与任何ServerName 指令不匹配时,使用默认 VH。而默认 VH 是配置中定义的第一个

【讨论】:

以上是关于VirtualHost - 将所有域指向根文件夹,将一个域指向根文件夹中的子文件夹的主要内容,如果未能解决你的问题,请参考以下文章

虚拟主机文档根不起作用

VirtualHost 文件都指向 Ubuntu 12.04 中的第一个 VirtualHost [关闭]

如何将子域指向 Heroku 应用程序,将根域指向另一个 Heroku 应用程序?

设置Laravel项目以使用多个域名

Route53 中的域将根指向外部主机,在 AWS 中保留子域

发布网站配置文件和SSL