2012-01-10 2 views
3

Как это сделать http://domain.com 301 перенаправляет на http://www.domain.com? Я привык использовать .htaccess для ModRewrite, но я узнал, что не могу этого сделать на Heroku.Heroku 301 Перенаправление

Пример .htaccess:

Options +FollowSymlinks 
RewriteEngine On 

RewriteCond %{HTTP_HOST} ^domain.com [NC] 
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L] 

Моя структура файла:

- /public 
--- /style 
--- index.html 
- config.ru 

Я просто подавая на одну страницу, и мой config.ru состоит в следующем:

use Rack::Static, 
:urls => ["/style"], 
:root => "public" 

run lambda { |env| 
[ 
200, 
{ 
'Content-Type' => 'text/html', 
'Cache-Control' => 'public, max-age=86400' 
}, 
File.open('public/index.html', File::RDONLY) 
] 
} 
+0

Ни один из ответов здесь не работал для меня, и я отказался от этого давно , – David

+0

У меня такая же проблема ... еще нет решения? – dinkelk

ответ

0

Вы должны добавить новый бесплатный Custom Domain.

+0

У меня есть и http: // www. и http: // setup, оба работают, но это не то, о чем я прошу. Я хочу, чтобы он загружал www.domain.com, если вы переходите на http://domain.com – David

3

использовать rack_rewrite (gem 'rack-rewrite' в вашем Gemfile) и создать файл rack_rewrite.rb в каталоге инициализаторов;

YourAppName::Application.config.middleware.insert_before(Rack::Lock, Rack::Rewrite) do 
    r301 %r{.*}, 'http://www.yourdomainname.com$&', :if => Proc.new {|rack_env| 
    rack_env['SERVER_NAME'] != 'www.yourdomainname.com' 
    } 
end if Rails.env == 'production' 

это говорит о том, если имя_сервер запрашиваются не www.yourdomainname.com затем перенаправить его на www.yourdomainname.com

+0

Хорошо, я сделал это ... но, похоже, это не имеет никакого эффекта. Я добавил/config/initializers /, а затем создал rack_rewrite.rb с указанным выше кодом (очевидно, изменил мое доменное имя), и Heroku обнаружил и установил драгоценный камень для перезаписи. Но ... ничего не происходит, когда я загружаю domain.com (т. Е. Он просто загружается, не переписывается на www). – David

+0

странный - я снял его прямо из производственного приложения. Ах, мое было приложение Rails 3.1 - взгляните на инструкции на https://github.com/jtrupiano/rack-rewrite –

+0

Я думаю, что мое приложение в стойке не знает, что/config/initializers, учитывая мой файл в моем главном посте? – David

Смежные вопросы