I'm building a rails app that I'll host on Heroku at domain.com. And I'd like to use WordPress for the blog hosted on phpfog, but I don't want to use a subdomain like blog.domain.com. I'd instead prefer to use a subdirectory like domain.com/blog
Its not about SEO...I'm just not a fan of subdomains. Subdirectories are sexier (yeah...I actually said that).
Any idea on how I can reliably accomplish this? Thanks in advance for the help.
As far as I can tell you can't access the Apache config file with heroku if you could you could use a Rewrite rule.
If you choose not to use heroku you can always do what I detail below.. However if you're not using heroku you could just as easily extract wordpress to the /public/ rails folder and once again use a rewrite rule to get apache to handle the blog requests.
In your apache configuration you'll need to add.
It will redirect all requests to /blog/ to the other server.
Source: http://www.igvita.com/2007/07/04/integrating-wordpress-and-rails/
In addition to jplewickeless' answer, I ended up writing custom Rack middelware to replace absolute urls and other paths at the side of the reverse proxy. This guide will get you started on that:
http://railscasts.com/episodes/151-rack-middleware
I'd say your best bet is to try and do a reverse proxy with Rack middleware (akin to Apache's
mod_proxy
).A quick Google search revealed this gem ( https://github.com/jaswope/rack-reverse-proxy ), but the author mentions that it's probably not production-ready. Having a Rack middleware proxy should allow you to forward your subdomain
yourdomain.com/blog
to another websiteyour-phpfog-account.com/wordpress-installation
.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 runbundle install
. Next, you'll modify yourconfig.ru
to forward the/blog/
route to your desired blog: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 tohttp://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 forhttp://yourdomain.com/blog/
instead of ashttp://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/
.