2011-02-27 17 views
3

私は彼のRailsアプリをHerokuに移行したいクライアントを持っています。しかし、クライアントには、WordPressで動作するドメインに関連付けられたブログもあります。現在、WordPressのブログはRailsアプリと一緒に楽しく走っていますが、一度Herokuに移行すれば明らかにできません。WPブログをRails App with Herokuに接続する必要があります

アプリのURLはhttp://mydomain.comのようになり、ブログのURLはhttp://mydomain/blogのようになります。

私は、TotoやJekyllのようなRails形式でブログをやり直すことが最善の長期的解決策であることを認識しています。しかし、短期的には、WPブログのホスティングを続けて(またはどこか)、Herokuを使ってアプリを稼働させるのが最善の方法は何ですか?クライアントはブログがサブドメイン上にあることを望んでいませんが、ブログへのトラフィックがあるので、SEOの理由でmydomain/blogにとどまるようにしてください。

  1. Herokuのに古いサイトからのメインURLをリダイレクトするために、古い(非Herokuの)サーバー上の使用rack_rewriteや屈折(あるいは単に通常の301歳とApacheのmod_rewrite):私は2つのアイデアを持っています。この場合、私はWordpressのブログをどこにでも幸せに走らせておくことができます。おもう??このようにすれば、他のオプションよりもこれらのオプション(rack_rewrite、refraction、またはmod_rewrite)の1つを選択する理由はありますか?

  2. ヘロクサイトを指すようにDNS情報を切り替えてから、ブログの301リダイレクトを古いサイトに使用します。しかし、私はサブドメイン上の古い(非Heroku)サイトを取得し、とにかくそれがサブドメインではないように見えるようにいくつかの種類の書き換えルールを使用する必要があります。

これらの方法のどちらかが推奨されていますか、それとももっと簡単に行う方法がありますか?

+0

何:

あなたが宝石をインストールし、ドキュメントに応じてアプリを設定した後、あなたの./config.ruファイルはこのようなものを持っていますhttps://github.com/jaswope/rack-reverse-proxy

を参照してください? –

+0

@ジョン、私は同じ状況があります。あなたはウィルフィールドのアドバイスに従ったのですか? – Dorian

+0

@Dorian、これは悪い考えであることをクライアントに説得したので、私はWinfieldのアドバイスに従ったと思います。 –

答えて

1

長期的でスケーラブルな解決策は、ブログをサブドメインまたは別のドメインで永続的にホストし、mydomain.com/blogから新しい場所(つまりblog.mydomain.com)へのリダイレクトを追加することです。 。

RailsとWordpressのような混在バックエンドに対応するためには、mydomain.comのApache/nginxのようなフロントエンドを実行する単一のサーバーが必要ですが、これはHerokuでは不可能です。

悲しいことに、これはコンサルタントとして掘り下げて、技術的な制限についてクライアントに強要する必要がある場所です。

なぜクライアントはHerokuに移行しますか?あなたはフロントエンドを制御し、異なるバックエンドで混在することができる異なるホスティングで達成できる大きな目標がありますか?

+0

ありがとう、非常に良いアドバイスのように聞こえる! SEOの理由で –

+0

を使用すると、サブドメインではなくブログにブログを保存する方が効果的です –

1

英雄をhttp://app.example.comに設定し、Wordpressをhttp://example.comに設定する方法もあります。 WordPressのランディングページをルートに、ブログを/ blogに配置します。ユーザーがリンク先ページで[ログイン]または[サインアップ]をクリックすると、heroku-appにリンクされます。

これはSEOの観点からは最適ですが、DNSに関する知識が必要です。

1

Winfieldの答えが正しくありません。ラックサーバー上で(Heroku経由で)リバースプロキシを実行して、どこにいてもブログに誘導することができます。ちょうどRubyでPHPの実装を書くことについて

use Rack::ReverseProxy do 
    reverse_proxy(/^\/blog(\/.*)$/, 
    'http://<app-name>.herokuapp.com$1', 
    opts = {:preserve_host => true}) 
end 
関連する問題