Apache将www.domain.com重定向到domain.com/domain

时间:2012-05-24 08:33:28

标签: redirect web apache2 subdomain virtualhost

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

2 个答案:

答案 0 :(得分:0)

如果有人输入此问题。

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

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

答案 1 :(得分:0)

最好放

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

您无法在服务器和别名之间放置空格,因此我更改为显示

希望它有用!