2010-09-09 120 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