2

これはちょっと変ですが、同じドメインで複数のWebサイトにサービスを提供したいと思います。可能であれば、ユーザーがURLをシンプルに保つために、サブドメインを避けたいと考えています。ユーザーが2つの別個のアプリであることを知る必要はありません。これは、純粋にコードベースを分離しておくためのものです。何か案は?

例えば:

Rails App 1(Refinery CMS)は以下を提供します:

http://example.com/

http://example.com/about

http://example.com/pricing

Rails App 2(私たちの実際のアプリ)は以下を提供します:

http://example.com/account

http://example.com/store

http://example.com/listings

私たちはruby1.9.2、ruby on rails、refinery cms、apache、passengerを使用しています。

4

4 に答える 4

11

Passengerを使用している場合は、マニュアルの「サブURIへのデプロイ」の部分を確認してください。サブURIでアプリを設定するのは非常に簡単です。config.action_controller.relative_url_rootアプリの設定も必要になる場合があります。

編集:私は質問を読み間違えました。URIごとに1つのアプリではなく、一部の(すべてではない)エンドポイントにサービスを提供する1つのアプリ。これは、実際には、いくつかの基本的な書き換えでも適度に簡単に実行できます。

たとえば、Railsアプリをにデプロイします/railsapp(ただし、設定はしませんrelative_url_root)。さて、.htaccessで:

RewriteRule ^account/(.*)$ railsapp/account/$1 [L]

これにより、内部で/ account/*が/railsapp/ account / *に再マップされるため、Railsアプリが処理するパスごとに書き換えを設定している限り、正常に機能するはずです。

于 2010-12-30T01:26:43.313 に答える
0

サブドメインを使用すると簡単になりますが(したがって、ほとんどのサイトにshop.example.comがあるのはなぜですか)、名前ベースの仮想ホストルーティングで書き換えルールを使用できる可能性があります。それをどのように正確に行うかはわかりません。スーパーユーザー向けのApache書き換えに関する質問の詳細。

SSLを使用している場合は、問題が発生する可能性があるという警告が表示されます。

于 2010-12-30T01:15:40.443 に答える
0

ほとんどのURLが機能すると予想される1つのアプリを最初にヒットするように設定でき、404sの場合は、次に他のアプリを試すように指示できます。ただし、これはルートごとのルーティングよりも遅くなりますが、ハードコーディングしなくても機能します。たとえば、RefineryCMSで作成されたすべてのページのルーティング。

于 2010-12-30T02:53:51.447 に答える
0

現在、私も同じ種類のCMSに取り組んでいます。私の場合も、次のような複数のサブドメインが必要です。

www.test1.mydomain.com

www.test2.mydomain.com

www.test3.mydomain.com

www.test4.mydomain.com

これが私がしたことです

Rails 3(Rails3を使用している場合)では、リクエストオブジェクトを使用してサブドメインを取得できます。(Rails 2.xを使用している場合は、sub domain_fuプラグインを使用できます)

私の場合、サブドメインを取得するためにbeforeフィルターを使用しました。その後、サブドメインに従ってサイトをロードします。

開発には、次のパブリックドメイン「lvh.me」を使用してください

http://tbaggery.com/2010/03/04/smack-a-ho-st.html

これは私にとって非常に役に立ちましたhttp://railscasts.com/episodes/221-subdomains-in-rails-3

ユーザーが自分のドメインをサブドメインに転送できるようにする(マスキングを使用)

例:www.clientdomain.com-> http://client.mydomain.com

お役に立てれば

乾杯

sameera

于 2010-12-30T06:23:28.627 に答える