2011-02-10 3 views
0

共有ホストサーバーでレールアプリケーションを実行していて、public_html~/rails_apps/app1/publicにマップされています。 これは、www.mydomain.comがapp1を起動するように行われました。予想通り、.htaccessファイルは、ここで新しいレールAPP2が来るこのレールアプリケーションが別のレールのパブリックフォルダ内にあるときに.htaccessを設定する方法は?

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ dispatch.fcgi [QSA,L] 

のようなもので、私は~/rails_apps/app2を作成しwww.mydomain.com/app2

を介してアクセスしたい、とpublic_html/app2が指し示すシンボリックリンクを作成した(シンボリックリンクがあります実際には~/rails_apps/app1/public/app2)。

このapp2も起動するためにdispatch.fcgiが必要です。そのため、app2/public/.htaccessには上記と同じRewriteRulesがあります。

問題は、私がwww.mydomain.com/app2/helloにアクセスすると、私の最初のapp1がリクエストを受信して​​いて、失敗しているということです。私はこのルールを "File/app2/helloは存在せず、処理のためにdispatch.fcgiに送る"と読んでいます。

だから、私は

公共

RewriteCond %{REQUEST_URI} ^/app2/.* 
RewriteRule ^(.*)$ /app2/dispatch.fcgi [L] 
/APP1で追加のルールを設定しようとした私のApp2が今要求を取得しているが、それは私のルートで定義された /app2がないので失敗する /app2/helloを処理しようとします。ちょうど /helloを受け取る必要があります。

私も上記のパラグラフのルールの直前にRewriteBase /app2を置いてみましたが、何の違いも見られませんでした。私もRewriteBase /を元のapp1 RewriteRuleの前に置く必要がありました。それ以外の場合はapp1が壊れます。 (誠実に、複数のRewriteBaseが許可されているかどうかわかりません)

私の問題を解決する方法はありますか?

希望これは

を助けることができる

答えて

0

は...あなたのenvironmet.rb(生産)に

config.action_controller.relative_url_root = '/app2' 

を追加しよう/ APP2ルートサブディレクトリを調整します

関連する問題