You can use the rack-reverse-proxy gem that neezer found to do this. First you'll want to add gem "rack-reverse-proxy", :require => "rack/reverse_proxy"
to your Gemfile and run bundle install
. Next, you'll modify your config.ru
to forward the /blog/
route to your desired blog:
require ::File.expand_path('../config/environment', __FILE__)
use Rack::ReverseProxy do
reverse_proxy /^/blog(/.*)$/, 'http://notch.tumblr.com$1', opts={:preserve_host => true}
end
run YourAppName::Application
You probably already have the first require statement and the run YourAppName...
statement. There are a couple important details that make this work.
First, when you add your desired blog URL, you can't keep the trailing slash on it. If you do, when someone requests http://yourdomain.com/blog/
, the gem will forward them to http://you.yourbloghost.com//
with an extra trailing slash.
Secondly, if the :preserve_host
option isn't enabled, your blog hosting server will see the request as being for http://yourdomain.com/blog/
instead of as http://you.yourbloghost.com
and will return bad results.
You still may have an issue with the CSS or images if the blog uses /absolute/paths/to/images/
.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…