我正在准备我在 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 文件。