Heroku 301 Redirect - PullRequest
       7

Heroku 301 Redirect

4 голосов
/ 10 января 2012

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

Пример .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)
]
} 

Ответы [ 2 ]

3 голосов
/ 10 января 2012

используйте 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 голосов
/ 10 января 2012

Вы должны добавить новый бесплатный Пользовательский домен .

...