301 перенаправить в Passenger (Ruby on Rails) из корневого домена в поддомен www? - PullRequest
0 голосов
/ 07 февраля 2011

Как вы можете создать постоянное перенаправление (301) в Passenger? В других местах есть сообщения о том, как выполнить перенаправление в Rails, но кажется, что лучше сделать перенаправление на уровне сервера, а не на уровне Rails.

Есть какие-нибудь подсказки?

Спасибо!

Ответы [ 2 ]

2 голосов
/ 07 февраля 2011

Перенаправления на уровне сервера выполняются с сервера 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, но если у вас есть возможность сделать это здесь, это то, что я рекомендую.

0 голосов
/ 07 февраля 2011

Вы уверены, что хотите это на уровне Пассажира, а не на уровне Nginx / Apache ... то есть, почему перенаправление даже настолько далеко заходит в стек.

В зависимости от того, какой сервер вы используете, в сети есть ресурсы, которые сообщают вам, как этого добиться.

...