2010-09-09 167 views
1

当我在Apache上运行新创建的Rails应用程序时,我只能访问它的默认首页(标准app/public/index.html)文件。当我尝试通过URI运行自定义方法时,我找不到页面。所以我猜测我的.htaccess出了问题。我必须为每个控制器“打开”它吗?Ruby on Rails .htaccess问题

RewriteCond %{HTTP_HOST} ^example.com$ [OR] 
RewriteCond %{HTTP_HOST} ^www.example.com$ 
RewriteRule ^main(.*) "http\:\/\/127\.0\.0\.1\:12005\/$1" [P,L] 

编辑: 我加入杂种日志

Error calling Dispatcher.dispatch #<NoMethodError: private method `split' called for nil:NilClass> 
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.8/lib/action_controller/cgi_process.rb:52:in `dispatch_cgi' 

回答

0

嘿,Ruby on Rails的不关心的.htaccess。欢迎来到MVC世界:-)最有可能的是,你没有在rails中定义任何路线。或者你不使用乘客。

+0

MVC与路由无关。 – Gumbo 2010-09-09 11:55:26

+0

我无法在我的托管服务器上安装乘客宝石。 – 2010-09-09 12:00:38

+0

Mongrel + apache? Interessting设置...你不能使用乘客或独角兽(与nginx)?会让事情变得更容易... – Reactormonk 2010-09-09 15:49:46

0

首先,你可以改变前两个规则:

RewriteCond %{HTTP_HOST} ^(www\.)?example.com$ 

而且,最后的规则并不需要所有这些反斜杠,并且因为有一个斜杠前您的$ 1中,您应该有一个在^主(。*)太:

RewriteRule ^main/(.*)$ "http://127.0.0.1:12005/$1" [P,L] 

试试看,如果可行。我不知道P做什么以及如何工作,所以如果问题在那里,我不能帮你..

+0

在替换任何一条线没有任何反应。甚至没有显示index.html。部署Rails真的很痛苦。 – 2010-09-09 13:28:31

+0

对不起,我不知道Rails。我认为htaccess与你使用的任何框架无关,但如果我错了,我可以做的不多。如果将'[P,L]'改为'[L]'会发生什么? – 2010-09-09 13:41:02

+0

我真的不知道。这个代码是Cpanel生成的一个RewriteRule。 – 2010-09-09 13:45:59