На моем общем хост-сервере запущено приложение 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)
Есть идеи, как решить мою проблему?