2011-12-03 158 views
0

我知道有很多这样的问题,但我找不到合适的答案。使用www重定向子域名。到没有www

我在与虚拟主机共享的外壳。

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

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

我试图改变.htaccess文件在我的public_html目录即“/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. 

回答

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(某些URL转发器可能不注意URL的资源部分,并且可能会将所有内容重定向到/),它就会起作用。它不需要管理员做任何事情。

+0

谢谢您的回复。有没有其他的选择。在通知管理员之前,我想知道所有选项。去尝试一下。这是一个非常好的免费外壳主机,所以我不能多问。管理员是个好人。 – dams

+0

@dams:已更新为包含不需要管理员执行任何操作的解决方案。 :) – cHao