我通过VirtualHost配置文件中指定的“别名”指令托管域名为www.domain.com和domain.com的域名:
<VirtualHost *:80>
ServerName domain.com
ServerAlias www.domain.com
DocumentRoot /var/www/domain.com/current/public/
<Directory /var/www/domain.com/current/public/>
AllowOverride all
Options -MultiViews
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
现在http://www.domain.com和http://domain.com转到相同的内容。 我需要将www.domain.com的每个请求重定向到domain.com以及www.domain.com/something到domain.com/something。
我只是想知道将所有流量从www.domain.com重定向到domain.com的最佳做法。是应该在Apache,Passenger还是Rails级别完成?如何? 301重定向?
任何想法都赞赏。 谢谢。
修改 的
现在工作配置就是这个(带有“永久重定向”):
<VirtualHost *:80>
ServerName www.domain.com
Redirect permanent / http://domain.com/
</VirtualHost>
<VirtualHost *:80>
ServerName domain.com
DocumentRoot /var/www/domain.com/current/public/
<Directory /var/www/domain.com/current/public/>
LimitRequestBody 4096000
AllowOverride all
Options -MultiViews
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
答案 0 :(得分:3)
解决此问题的最佳方法是使用放置在虚拟主机中的Redirect指令。
<VirtualHost *:80>
ServerName www.example.com
Redirect / http://example.com/
</VirtualHost>
<VirtualHost *:80>
ServerName example.com
</VirtualHost>
请参阅此处:http://httpd.apache.org/docs/2.2/rewrite/remapping.html#canonicalhost