Перенаправления на уровне сервера выполняются с сервера HTTP, а не с сервера приложений.Вот несколько примеров:
Apache
<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" )
}
Хотя технически возможно достичь этого позже в стеке, как с приложением Rack, наиболее разумно сделать это как можно раньше, чтобы сохранить циклы процессора вашего сервера.Иногда вам придется делать это позже, например, с таким хостом, как Heroku, который не позволит вам изменить настройки HTTP, но если у вас есть возможность сделать это здесь, это то, что я рекомендую.