2009-10-05 62 views
0

編輯:資源映射本地而不是適用於網絡服務器

嗯,也許這可以給一個線索。在我的虛擬主機上的cPanel中創建Rails應用程序時,爲了訪問應用程序,您需要創建一個重寫規則。我做了什麼,但不知道它做了什麼。我跟蹤它到它創建以下兩個文件:

home/mydomain/public_html/.htaccess

RewriteEngine on 
RewriteCond %{HTTP_HOST} ^mydomain.com$ [OR] 
RewriteCond %{HTTP_HOST} ^www.mydomain.com$ 
RewriteRule ^/?$ "http\:\/\/127\.0\.0\.1\:12030%{REQUEST_URI}" [P,QSA,L] 

home/mydomain/.cpanel/ruby-on-rails-rewrites.db: 

    appname: helloworld 
    domain: mydomain.com 
    port: 12030 
    rewritebasepath: /home/mydomain/public_html 
    url: 

看來這根URL被髮送到Rails的,但任何其他URL不我得到了一個Apache 404(不是Rails 404)。 .htaccess文件有問題嗎? 僅針對域根的重寫條件是什麼?如果是這樣,我怎樣才能使它的任何網址?

原帖:

我想部署一個軌網站,本地罰款但不工作在Web服務器上。 Rails應用程序啓動正常,我可以訪問主頁。但在404

我的主頁任何其他鏈接結果設置爲從routes.rb內,像這樣:

map.root :controller => "home" 

我使用REST風格的路線,並在本地工作正常。在routes.rb我只有一堆

map.resources :posts 
map.resources :images 

...

如果我改變map.root到另一個控制器(即map.root :controller => "posts",那麼單頁將顯示效果細膩爲好,和所有其他環節會返回404s,包括之前在map.root中引用的那個之前工作的那個。

這是我的第一個rails部署,所以它可能是我做錯了什麼。我的web主機技術支持告訴我這是一個編碼問題,他們不能幫助我。

我的網站目錄結構網上像這樣:

/home/mydomain/etc/rails_apps/mysitedir/ <- rails folders (app, config, db, ...) 
/home/mydomain/public_html/ <- nothing here 

而且,這是在我的軌道公共文件夾中的文件,他們需要保持該文件夾中或者它們應該被放在public_html文件夾網絡?因爲現在他們也沒有找到。如果我將它們放在public_html文件夾中,它們可以從主頁(javascript和css和圖像)找到。

在我的錯誤日誌中的cPanel,它表明類似的錯誤:

[Mon Oct 05 08:19:41 2009] [error] [client XX.XX.XX.XX] 
File does not exist: /home/mydomain/public_html/market, 
referer: http://www.mydomain.com/ 

如果市場是我想從我的主頁訪問,例如其中一個鏈接,這是我的一個控制器。

總之,我可以訪問的唯一位置是根。

什麼我做錯了,我讓所有這些404? 我沒有shell訪問,我只有cPanel。這與Ruby 1.8.5和Rails 2.3.4一樣,(共享)Web服務器是Linux + Apache 2.2.11(Unix)。

回答

0

問題是與我的虛擬主機。仍然沒有被他們解決。

0

你需要讓你的Web根目錄指向到/ home/MYDOMAIN的/ etc/rails_apps/mysitedir /公/也許這可以在的cPanel配置?

如果你能訪問你會做一些這樣的外殼(語法可能會有所不同):

ln -s /home/mydomain/etc/rails_apps/mysitedir/public/ /home/mydomain/public_html 

請注意,您需要先刪除的public_html,你應該確認有這不會造成負面後果。

+0

是否會照顧路由的問題,或者它只是爲了在公共文件夾(JavaScript,樣式表,圖像)的東西嗎? – JRL 2009-10-05 14:14:39

+0

將這個命令來創建符號鏈接創建文件的地方,我可以直接創建我的電腦上,並上傳到網站? – JRL 2009-10-05 15:06:19

+0

我嘗試運行該命令來創建符號鏈接(使用cronjob,無法訪問shell),並返回: ln:爲/ home/mydomain/etc/rails_apps創建符號鏈接'/ home/mydomain/public_html/public'/mysite/public /':文件存在 我想這是一個錯誤。 那麼這是什麼意思?而且,在你的語法中,爲什麼第一個路徑以斜線結尾,而第二個路徑不是?這是一個錯誤? – JRL 2009-10-05 15:56:33

0

我遇到相同問題,並找到了解決。在.htaccess文件,刪除第一個「$」所以你必須:

RewriteRule ^/? "http\:\/\/127\.0\.0\.1\:12030%{REQUEST_URI}" [P,QSA,L] 

這第一位是正則表達式,所以$ URL的結尾匹配。

。負面的言論,這是無數次的問題,我已經解決了,因爲今天的cPanel很爛。

相關問題