我正准备在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文件。
答案 0 :(得分:0)
如果有人输入此问题。
我仍然不知道出了什么问题,但在文件中移动这些配置后,他们神奇地开始正常工作。
感谢所有花时间阅读问题的人。
答案 1 :(得分:0)
最好放
<VirtualHost *:80 >
ServerName domain.com
ServerAlias www.domain.com
DocumentRoot /var/www/domain
</VirtualHost>
您无法在服务器和别名之间放置空格,因此我更改为显示
希望它有用!