ruby-on-rails - 通过 .htaccess 配置 Phusion 乘客

标签 ruby-on-rails .htaccess passenger

我正在尝试安装 Redmine,但无法让 Phusion Passenger 使用 DocumentRoot 以外的任何目录。

我将从 Redmine 下载的公共(public)目录放入 ~/www/public/entry/redmine.mysite.com/,其余目录放入 ~/www/app/redmine.mysite.com/。

我在公用文件夹内的 .htaccess 文件中添加了以下行:

PassengerAppRoot ~/www/app/redmine.mysite.com

每当我尝试加载页面时,它只会给我一个没有找到普通 Mozilla 文件的页面。

有什么想法吗?

附加信息:

我设置了一个代码库,以便 apache 将任何给定的请求 URI 解析为特定的条目文件夹,如下所示:

DocumentRoot 是 ~/www/public

此文件夹中有一个 .htaccess 文件,包括以下规则:
RewriteCond ${lowercase:%{SERVER_NAME}} ^(dev\.)?(stg\.)?(www\.)?(.*)$
RewriteCond %{REQUEST_URI} !^/resource/(.*)$
RewriteRule !^entry/ entry/%4%{REQUEST_URI}

如果我使用 DocumentRoot=~/www/public/entry/redmine.mysite.com/为端口 3000 创建一个新的 VirtualHost,则一切都会正确加载。

但是,如果我改为使用我的代码库的基于 mod_rewrite 的分辨率,我会收到一个找不到页面的错误。

如果我访问 redmine.mysite.com/404.html,它会加载正确文件夹中的 404.html 页面。

如果我将PassengerAppRoot 更改为~/www/app/redmine.mysite.com/test,它会通知我该目录似乎不是有效的Ruby on Rails 应用程序根目录。

最佳答案

看起来解决方案是将 RailsBaseURI 设置为服务器上 DocumentRoot 的相对路径,而不是 REQUEST_URI!

我原以为它指的是实际的 URI 字符串,但事实证明并非如此!

关于ruby-on-rails - 通过 .htaccess 配置 Phusion 乘客,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3800508/

相关文章:

html - 是否可以将二进制图像数据放入 html 标记中,然后在任何浏览器中照常显示图像?

ruby-on-rails - 安装生成器不会看到我定义的方法

java - 如何让 Ruby 程序与 Java 程序一起工作?

ruby-on-rails - 获取在线用户 XMPP4r + Rails

ruby-on-rails - 嵌入或引用关系

regex - AngularJS 和 .htaccess 重定向

mysql - 用户中的参数错误#index

php - htaccess - 使用 php 和 mysql 重写 url

apache - RequestHeader 未在 htaccess 中的 RewriteRule 上设置

ruby-on-rails - Passenger 仅适用于将要开发的 RailsEnv