在 /app/ 下访问 Rails,而不是在 /app/public/ 下

在 /app/ 下访问 Rails,而不是在 /app/public/ 下

我正在尝试使用 Apache 2.2.10 和 FastCGI 部署 Rails 2.1.2(是的,我知道,它很糟糕、很古老、很丑陋)。

我的应用程序可以通过 访问example.com/app/public/,但我想通过 访问它example.com/app/

在我的.htaccess文件中(在app /目录中!)我有:

RewriteEngine On
RewriteBase /app/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ public/dispatch.fcgi [QSA,L]

我如何将发往 的每个请求转发到app/app/public/每次我尝试这样做(例如,使用RewriteRule ^.*$ public/$1 [QSA])时,都会收到路由错误:

No route matches "/app/" with {:method=>:get}

帮助?

答案1

好吧,您的 vhosts 文件似乎指向公共文件夹,因为您收到路由错误,所以 rails 环境已加载。

首先尝试将 .htaccess 移到公共文件夹中。公共文件夹应该是您网站的根目录,例如,我的 rails 应用程序在 www.mydomain.com/ 上运行,如果我将 file.html 放在公共文件夹中,我可以在 www.mydomain.com/file.html 上访问。

但是当您在 routes.rb 文件上有一条路线时,您就可以访问 www.mydomain.com/myroute 。

抱歉这么快就回复了。

相关内容