我有一些用户尝试访问使用www.subdomain.example.com注册为subdomain.example.com的站点。将www.subdomain.example.com重定向到subdomain.example.com
是否有某种.htaccess规则可以添加到重定向使用www.subdomain.example.com到达subdomain.example.com的人?
另外,我必须更改DNS的东西吗?
我有一些用户尝试访问使用www.subdomain.example.com注册为subdomain.example.com的站点。将www.subdomain.example.com重定向到subdomain.example.com
是否有某种.htaccess规则可以添加到重定向使用www.subdomain.example.com到达subdomain.example.com的人?
另外,我必须更改DNS的东西吗?
当然,使用像一个指令:
<VirtualHost *:80>
ServerName www.subdomain.example.com
Redirect permanent/http://subdomain.example.com/
</VirtualHost>
的Apache使用Redirect
指令,这就是为什么这种方法是行不通的一种常见的误解(以当时/
后自动保存任何东西事实确实如此)。
另外,是的,您需要更改DNS记录,因为www.subdomain.example.com
是一个独立的主机名,需要自己的A(或CNAME)记录才能将浏览器指向适当的服务器。
RewriteCond %{HTTP_HOST} ^www.subdomain.domain.com
RewriteRule (.*) http://subdomain.domain.com/$1 [R=301,L]
使用重写引擎是解决这一问题的一个非常重量级的方式。 'Redirect'指令完全一样。 – 2010-05-26 01:22:34
@GregHewgill同意,而且,除非将它放在与www.subdomain.domain.com(或默认虚拟主机)相匹配的虚拟主机中,否则此答案将不起作用。 – 2014-03-19 17:39:47
你需要在httpd.conf中添加一个虚拟主机的指令,并重定向到Permament正确的子域名,并添加额外的DNS条目(CNAME是罚款)
这假定OP使用'NameVirtualHost *:80' – Martin 2010-05-26 01:24:08
@Martin:这是一个合理安全的假设。如果不是,那么重要的部分是'Redirect'指令,而不是'VirtualHost'容器。 – 2010-05-26 01:26:37
人们已经在使用“www.subdomain.domain.com”访问网站的事实表明,该DNS记录可能已经存在......如果是这样,则不需要改变。 – 2010-05-26 02:30:30