我有一个域 - example.com
.
以下是我的DNS 记录。
example.com A IP address
www.example.com A IP address
这是我的Apache虚拟主机配置。
<VirtualHost *:80>
ServerName www.example.com
DocumentRoot /var/www/public_html/www.example.com
</VirtualHost>
现在,当我在浏览器中输入example.com
(不带www
部分内容)时,我会得到默认的Apache页面,而不是来自DocumentRoot
. 当我添加www
到我的域时,一切正常。
现在的问题是如何设置它以便两个域www.example.com
并example.com
从文档根目录提供相同的文件?我应该在 DNS 级别处理这个问题还是以某种方式配置 Web 服务器?我在这一切都是菜鸟,所以这个问题可能很愚蠢。
您应该添加一个 ServerAlias - 将您的 VirtualHost 修改为如下所示:
您还可以将所有子域重定向到您的根目录
正如ceejayoz在他的评论中所说,你需要一个
ServerAlias
无论你有
ServerName
还是ServerAlias
aswww
真的是一个偏好问题。如果您订阅no-www信念或yes-www信念,它可能会有所不同,就像您正在使用该UseCanonicalName
指令一样,您可能会发现 Apache 将您的用户重定向到稍微出乎意料的地方。同样正如 ceejayoz 所提到的,您想选择一个营地(www.example.com 或只是裸 example.com)并坚持下去。您真的不想在两种变体上都提供相同的内容 - 别名的内容应该真正重定向到规范的内容。那里有一千个网站会告诉你如何设置它
mod_rewrite
。对于 Nginx:
对于 Apache 示例:
更改后重启服务:
除了你的 apache 问题:
www.example.com 应该是 example.com 的 CNAME。一个A记录就够了。