摆脱www的最好方法。和

时间:2010-06-04 05:11:23

标签: php apache zend-framework .htaccess

我希望所有流量都转到:

http://www.domain.com

http://domain.com

|

V

http://main.domain.com

我可以使用.htaccess或PHP中的东西,我正在使用zend框架。请注意我也有:

http://sub1.domain.com

http://sub2.domain.com

THX

4 个答案:

答案 0 :(得分:6)

此规则将保留完整的uri

RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC,OR]
RewriteCond %{HTTP_HOST} ^(domain.com)$ [NC]
RewriteRule ^(.*)$ http://main.%1/$1 [R=301,L,QSA]

PS:如果没有明确的域规范,我无法想到如何使第二行更具可移植性。我会感谢能够纠正我的人。

答案 1 :(得分:1)

为什么不使用ServerName指令?

答案 2 :(得分:1)

当域名服务器协议被设计为完全像这样处理重定向时,服务器端解决方案似乎有点不必要。路径信息和POST变量以透明方式保留。

如果您有权访问您网站的DNS记录,最好使用CNAME record将用户重定向到正确的域名。

CNAME将寻找一个域(例如site.com)的人指向另一个域(例如main.site.com)。这一切都在您的服务器上没有任何工作的情况下完成。

只需将两条记录添加到指向的CNAME记录中:

domain.com => main.domain.com
www.domain.com => main.domain.com

如果您当前的DNS提供商未提供此功能,请尝试使用ZoneEdit,他们过去曾为我们工作过。

答案 3 :(得分:1)

您要做的是Web服务器的功能。所以让webserver处理请求。因此,最有效的方法是使用.htaccess重定向指令。 使用PHP来实现它是一种低效的方法。