2009-10-05 74 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很烂。

相关问题