Rails/Passenger/Apache2:从 www.domain.com 重定向到 domain.com
我通过 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>
I'm hosting a domain with both addresses www.domain.com and domain.com through an "alias" directive specified in the VirtualHost config file:
<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>
Now http://www.domain.com and http://domain.com go to the same content.
I need to redirect every request for www.domain.com to domain.com as well as www.domain.com/something to domain.com/something.
I'm just wondering on best practice for redirecting all traffic from www.domain.com to domain.com. Is should be done at Apache, Passenger or Rails level? and how? 301 redirect?
Any ideas appreciated.
Thank you.
EDIT:
The working configuration is now this one (with "Redirect permanent"):
<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>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
解决此问题的最佳方法是使用放置在虚拟主机中的重定向指令。
请参阅此处: http://httpd.apache.org/docs/2.2/重写/remapping.html#canonicalhost
The very best way to solve this is by using Redirect directive placed in a virtual hosts.
Refer here: http://httpd.apache.org/docs/2.2/rewrite/remapping.html#canonicalhost