Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails RubyonRails.htaccess问题_Ruby On Rails_Apache_.htaccess_Deployment - Fatal编程技术网

Ruby on rails RubyonRails.htaccess问题

Ruby on rails RubyonRails.htaccess问题,ruby-on-rails,apache,.htaccess,deployment,Ruby On Rails,Apache,.htaccess,Deployment,当我在Apache上运行新创建的Rails应用程序时,我只能访问它的默认首页(标准app/public/index.html)文件。当我尝试通过URI运行自定义方法时,我发现找不到页面。所以我猜我的.htaccess有问题。我必须为每个控制器“打开”它吗 RewriteCond %{HTTP_HOST} ^example.com$ [OR] RewriteCond %{HTTP_HOST} ^www.example.com$ RewriteRule ^main(.*) "http\:\/\/12

当我在Apache上运行新创建的Rails应用程序时,我只能访问它的默认首页(标准app/public/index.html)文件。当我尝试通过URI运行自定义方法时,我发现找不到页面。所以我猜我的.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'

调用Dispatcher.dispatch时出错#嘿,Ruby on Rails不关心.htaccess。欢迎来到MVC世界:-)很可能,您没有在rails中定义任何路由。或者您没有使用passenger。

嘿,RubyonRails不关心.htaccess。欢迎来到MVC世界:-)很可能,您没有在rails中定义任何路由。或者您没有使用乘客。

首先,您可以将前两条规则更改为:

RewriteCond %{HTTP_HOST} ^(www\.)?example.com$
另外,最后一条规则不需要所有这些反斜杠,因为$1前面有一个斜杠,所以^main(*)中也应该有一个:


如果行得通,试试看。我不确定P是做什么的以及它是如何工作的,因此如果问题出在那里,我无法帮助您。

首先,您可以将前两条规则更改为:

RewriteCond %{HTTP_HOST} ^(www\.)?example.com$
另外,最后一条规则不需要所有这些反斜杠,因为$1前面有一个斜杠,所以^main(*)中也应该有一个:


如果行得通,试试看。我不知道P是做什么的,以及它是如何工作的,所以如果问题出在那里,我也帮不了你。

问题实际上是Rails 2.3.x和Mongrel之间的问题,而不是.htaccess


上讨论了这一点,并找到了一个解决方案(通过猴子补丁)。问题实际上是Rails 2.3.x和Mongrel之间的问题,而不是.htaccess


经过讨论,在

找到了一个解决方案(通过猴子补丁),MVC与路由无关。我无法在我的托管服务器上安装passenger gem。Mongrel+apache?有趣的设置。。。您不能使用乘客或独角兽(带nginx)吗?会让事情变得更简单…MVC与路由无关。我无法在我的托管服务器上安装passenger gem。Mongrel+apache?有趣的设置。。。您不能使用乘客或独角兽(带nginx)吗?会让事情变得更容易…在替换任何一行时都不会发生任何事情。甚至没有显示index.html。部署Rails真的很痛苦。对不起,我对Rails一无所知。我认为htaccess与您使用的框架无关,但如果我错了,我也无能为力。如果您将
[P,L]
更改为
[L]
,会发生什么?我真的不知道。这段代码是Cpanel作为重写规则生成的。如果完全删除它会怎么样?那么我根本无法访问它。在替换任何一行时都不会发生任何事情。甚至没有显示index.html。部署Rails真的很痛苦。对不起,我对Rails一无所知。我认为htaccess与您使用的框架无关,但如果我错了,我也无能为力。如果您将
[P,L]
更改为
[L]
,会发生什么?我真的不知道。这段代码是Cpanel作为重写规则生成的。如果完全删除它会怎么样?那么我根本无法访问它。