Как настроить .htaccess, когда приложение rails находится внутри общей папки другого rails? - PullRequest
0 голосов
/ 10 февраля 2011

На моем общем хост-сервере запущено приложение rails, и public_html сопоставлено с ~/rails_apps/app1/public.Это было сделано, чтобы www.mydomain.com запустил app1.Как и ожидалось, .htaccess выглядит так

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

Вот новое приложение rails app2, и я хочу получить к нему доступ через www.mydomain.com/app2

Я создал ~/rails_apps/app2 и создалсимволическая ссылка public_html/app2 указывает на нее (символическая ссылка на самом деле ~/rails_apps/app1/public/app2).

Это приложение 2 также требует запуска dispatch.fcgi, поэтому app2/public/.htaccess имеет те же RewriteRules, что и выше.* Проблема в том, что когда я получаю доступ к www.mydomain.com/app2/hello, мое первое приложение1 получает запрос и не работает.Я читаю это правило, так как «Файл / app2 / hello не существует, отправьте его на dispatch.fcgi для обработки».

Итак, я попытался настроить дополнительное правило в app1 / public

RewriteCond %{REQUEST_URI} ^/app2/.*
RewriteRule ^(.*)$ /app2/dispatch.fcgi [L]

Мое приложение2 теперь получает запрос, но пытается обработать /app2/hello, что не удается, поскольку в моих маршрутах не определено /app2.Он должен получить только /hello.

Я также пытался поставить RewriteBase /app2 непосредственно перед правилами в предыдущем абзаце, но, похоже, это не имело никакого значения.Мне также нужно было поставить RewriteBase / перед исходным app1 RewriteRule, иначе app1 ломается.(искренне, я не знаю, разрешено ли более одного RewriteBase)

Есть идеи, как решить мою проблему?

1 Ответ

0 голосов
/ 10 февраля 2011

для настройки подкаталога / app2 router попробуйте добавить

config.action_controller.relative_url_root = '/app2'

в вашу среду.рб (производство) ...

надеюсь, что это может помочь

...