0

我正在准备我在 Amazon AWS 中的 ubuntu 服务器来托管一个新网站。它使用 Apache2。我以前这样做过,没有任何问题,例如,为了欺骗我欺骗 google.com 和 www.google.com 的朋友(编辑他的主机文件),无论有没有“www.”,一切都很好。

现在我用 1&1 购买了一个域名 'domain.com',我已经配置了一个子域 'www.domain.com' 并将它指向我的服务器。dns记录很好,我检查了。我还编辑了启用站点的默认文件并添加了以下条目:

<VirtualHost *:80 >
    ServerName www.domain.com
    DocumentRoot /var/www/domain
</VirtualHost>

<VirtualHost *:80 >
    ServerName domain.com
    DocumentRoot /var/www/domain
</VirtualHost>

当我在浏览器中访问 domain.com 时,它工作正常,但是当我访问 www.domain.com 时,我得到domain.com/domain/并且显然是 404。

我使用 telnet 发现当你请求主机的根页面时服务器会发送 301:www.domain.com

我不知道为什么会这样,我对上面的配置进行了很多修改,例如:

<VirtualHost *:80 >
    ServerAlias www.domain.com
    DocumentRoot /var/www/domain
</VirtualHost>

<VirtualHost *:80 >
    ServerAlias domain.com
    DocumentRoot /var/www/domain
</VirtualHost>

.

<VirtualHost *:80 >
    ServerName domain.com
    DocumentRoot /var/www/domain
</VirtualHost>

<VirtualHost *:80 >
    ServerName www.domain.com
    DocumentRoot /var/www/domain
</VirtualHost>

.

<VirtualHost *:80 >
    ServerName domain.com
    Server Alias www.domain.com
    DocumentRoot /var/www/domain
</VirtualHost>

但它一直在发生。

作为记录,这就是我用来恶搞的东西,它仍然可以正常工作

<VirtualHost *:80 >
    ServerName google.com
    DocumentRoot /var/www/google
</VirtualHost>

<VirtualHost *:80 >
    ServerName www.google.com
    DocumentRoot /var/www/google
</VirtualHost>

我现在已经搜索了两天,但我发现的只是我正在使用的相同配置,并且没有解释为什么这不起作用。

谢谢你的帮助!

PS:此目录或任何父目录中都没有 .htaccess 文件。

4

2 回答 2

0

最好放

<VirtualHost *:80 >
    ServerName domain.com
    ServerAlias www.domain.com
    DocumentRoot /var/www/domain
</VirtualHost>

您不能在 Server 和 Alias 之间放置空格,所以我改为向您展示

希望它有效!

于 2012-06-10T11:05:02.933 回答
0

万一有人输入这个问题。

我仍然不知道出了什么问题,但是在将这些配置移动到文件中之后,它们神奇地开始正常工作。

感谢所有花时间阅读问题的人。

于 2012-06-06T19:45:38.543 回答