301重定向在Passenger(Ruby on Rails)从根域到www子域?

问题描述:

如何在Passenger中创建永久重定向(301)?在其他地方有关于如何在Rails中执行重定向的帖子,但是在服务器级而不是在Rails级别执行重定向似乎更好。301重定向在Passenger(Ruby on Rails)从根域到www子域?

任何线索?

谢谢!

服务器级重定向是使用HTTP服务器完成的,而不是应用服务器。下面是一些例子:

阿帕奇

<VirtualHost xxx.xxx.xxx.xxx:80> 
    ServerAlias example.com 
    Redirect Permanent/http://www.example.com 
</VirtualHost> 

Nginx的

server { 
    server_name example.com; 
    rewrite ^/(.*) http://www.example.com/$1 permanent; 
} 

Lighttpd的

$HTTP["host"] =~ "^example\.com$" { 
    url.redirect = ("^/(.*)" => "http://www.example.com/$1") 
} 

虽然这是铁三角lly可能在后面的堆栈中实现这一点,就像使用Rack应用程序一样,尽可能早地执行此操作可以节省您的服务器cpu周期。有时候你必须稍后再做,比如像Heroku这样的主机,它不会让你改变你的HTTP设置,但是如果你有选择在这里做的话,那就是我的建议。

+0

其中`Apache`文件配置通常位于何处? – 2014-12-27 01:10:49

您确定您希望在Passenger级别,而不是在Nginx/Apache级别上......即,为什么重定向甚至能够在堆栈中实现。

根据您使用的服务器,网络上有资源告诉您如何完成此操作。