2010-05-26 89 views

回答

16

当然,使用像一个指令:

<VirtualHost *:80> 
    ServerName www.subdomain.example.com 
    Redirect permanent/http://subdomain.example.com/ 
</VirtualHost> 

的Apache使用Redirect指令,这就是为什么这种方法是行不通的一种常见的误解(以当时/后自动保存任何东西事实确实如此)。

另外,是的,您需要更改DNS记录,因为www.subdomain.example.com是一个独立的主机名,需要自己的A(或CNAME)记录才能将浏览器指向适当的服务器。

+0

这假定OP使用'NameVirtualHost *:80' – Martin 2010-05-26 01:24:08

+0

@Martin:这是一个合理安全的假设。如果不是,那么重要的部分是'Redirect'指令,而不是'VirtualHost'容器。 – 2010-05-26 01:26:37

+0

人们已经在使用“www.subdomain.domain.com”访问网站的事实表明,该DNS记录可能已经存在......如果是这样,则不需要改变。 – 2010-05-26 02:30:30

4
RewriteCond %{HTTP_HOST} ^www.subdomain.domain.com 
RewriteRule (.*) http://subdomain.domain.com/$1 [R=301,L] 
+1

使用重写引擎是解决这一问题的一个非常重量级的方式。 'Redirect'指令完全一样。 – 2010-05-26 01:22:34

+0

@GregHewgill同意,而且,除非将它放在与www.subdomain.domain.com(或默认虚拟主机)相匹配的虚拟主机中,否则此答案将不起作用。 – 2014-03-19 17:39:47

-1

你需要在httpd.conf中添加一个虚拟主机的指令,并重定向到Permament正确的子域名,并添加额外的DNS条目(CNAME是罚款)