我正在尝试使用 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 。
抱歉这么快就回复了。