使用www重定向子域。没有www

时间:2011-12-03 18:48:41

标签: apache

我知道有很多这样的问题,但我找不到合适的答案。

我在网络托管的共享shell上。

我有一个子域名 - “xyz.abc.com”。 问题是,当我输入一个额外的“www。”在它之前,即“www.xyz.abc.com”,它重定向到托管shell的根网站,即“www.abc.com”,而不是打开“xyz.abc.com”。

我联系了管理员。他说他不能改变重定向设置,因为他必须重写2000行的APACHE服务器代码。

我尝试更改public_html目录中的.htaccess文件,即“/home/usr/public_html/.htaccess”以包含此内容:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

这没有帮助。

我尝试在“/home/usr/.htaccess”添加.htaccess。这也行不通。

我无法在“/ home”添加任何文件。

管理员有没有简单的方法。改变这个重定向问题。

Most people tend to add a "www." before any web address.

1 个答案:

答案 0 :(得分:0)

默认虚拟主机(在本例中,显然是abc.com的主站点)将是服务器获取但不知道的域的答案。在您的情况下,服务器知道xyz.abc.com会转到您的网站。但是,从未听说过www.xyz.abc.com。并且由于它没有,请求进入默认站点,该站点可能会自己执行301以反弹到它期望的站点(显然是www.abc.com)。

为了解决这个问题,假设主持人不愿意为您修改自己的网站(当然,假设域名www.xyz.abc.com指向与xyz.abc.com相同的服务器),有人需要将www.xyz.abc.com*.xyz.abc.com添加到您网站的域别名列表中。如果服务器设置得适合托管,那就是该站点配置中的一行ServerAlias *.xyz.abc.com)。 2000行相当于整个中小容量Web服务器的Apache配置,包括十几个基于名称的个人虚拟主机。如果管理员没有夸大其词,那么他们基本上会告诉你那个服务器没有设置为真正的商业级虚拟主机 - 他们可能正在做一个不能为个人定制的俗气的大众虚拟主机用户。

如果您无法让管理员为您修复服务器别名,则可以选择从提供“URL转发”的注册商处获取域名。如果设置正确,则会将您的域指向仅重定向到xyz.abc.com的网站。这有点难看,但只要您网站中的所有链接都转到xyz.abc.com(某些网址转发商可能不会关注网址的资源部分,并且可能会将所有内容重定向到/),它就会有效。并且它不需要管理员做任何事情。