是否可以显示 example.com 并让它实际访问 www.example.com?

Nat*_*iel 0 domain-name

我问 Super User 时,有人告诉我问Server Fault ,这对我来说很有意义,所以就在这里。

我喜欢没有 www的外观,但有点担心缺点,例如跨根域和所有子域共享 cookie(并不是说我目前实际上对 cookie 一无所知,但我确实想要面向未来)。

我的猜测是这可能通过某种别名类型的东西成为可能。但我可能是错的,所以我在这里问。

那么,澄清一下,是否可以在地址栏中包含http://foo.com/而实际上正在访问http://www.foo.com/

编辑:我打算用NearlyFreeSpeech.NET主持。服务器是 Apache,我猜操作系统是某种 Linux 风格。

编辑2:所以你真的明白我的意思吗?我正在寻找的是:当一个人浏览到该站点时,http://foo.com/是他们在地址栏中看到的内容,而http://www.foo.com/是正在访问的内容。我不得不说 Xorlev 的答案看起来最接近,但考虑到潜在的 cookie 问题并且我将使用共享 IP 托管,它会解决问题。

Cha*_*per 7

是的。根据 Web 服务器配置,您要么不需要做任何事情(如果使用基于 IP 的虚拟主机或根本不使用虚拟主机),要么使用 ServerName 和 ServerAlias 指令配置基于名称的虚拟主机。

在 Apache 中,这看起来像:

NameVirtualHost *:80
<VirtualHost *:80>
ServerName foo.com
ServerAlias www.foo.com
# Virtual host document root, logging, other configuration here
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

您还需要 foo.com 的 DNS。和 www.foo.com。解析到相同的地址。


mar*_*kus 6

如果允许的话,我会发表评论。

查尔斯的回答是正确的。一件事你可能想做一些不同的事情。我通常将 foo.com DNS 条目设置为 IP 的 A 记录,将 www.foo.com 条目设置为 foo.com 的 CNAME 记录。因此,如果您的 IP 发生变化,则无需同时更改两者。但这是一个小细节。