Rails4:由于可能的配置错误,请求超出了10个内部重定向的限制

时间:2014-03-19 14:01:23

标签: ruby-on-rails apache ruby-on-rails-4 passenger

我在apache服务器上托管了一个带有phusion乘客的rails 4应用程序,当我尝试访问受密码保护的管理页面时,我收到500错误。

查看日志,我发现由于可能的配置错误,我得到了一个"请求超过了10个内部重定向的限制。"

我已经在网上看了SO,看起来这通常来自一个配置不当的.htaccess。问题是我的应用程序正在使用 http_basic_authenticate_with ,因此我不确定如何解决问题。

这是我的admin_controller.rb,其中包含身份验证:

class AdminController < ApplicationController

    @config_name = CONFIG["name"]
    @config_password = CONFIG["password"]

    http_basic_authenticate_with :name => @config_name, 
        :password => @config_password, 
        :realm => (I18n.t "msg_authentication")

这是我的routes.rb(我不认为错误来自这里):

LandingPage::Application.routes.draw do

    get "admin/gestion"
    get "admin/download"
    get "admin/email"
    get "admin/show"
    get "admin/new"
    get "admin/validate"

    get "admin", to: "admin#home"

    root 'main#home'

    resources :mail_infos, controller: :main, :path => "/"
    resources :mail_bodies, controller: :admin, :path => "/admin"

end

我的虚拟主机代码:

PassengerRuby /usr/local/rvm/gems/ruby-2.1.0/wrappers/ruby

<VirtualHost *:80>
    ServerName DOMAIN.com
    DocumentRoot /var/landing-page/public
    <Directory /var/landing-page/public>
        Allow from all
        Options -MultiViews
    </Directory>
    RewriteEngine off
    LogLevel debug
    ErrorLog /var/log/apache2/landing-page.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    #        LogLevel warn 

    CustomLog /var/log/apache2/access.log combined
</VirtualHost>

这是我的apache呈现应用程序的日志:

[Wed Mar 19 13:44:51 2014] [error] [client 98.14.198.144] Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace.
[Wed Mar 19 13:44:51 2014] [debug] core.c(3063): [client 98.14.198.144] r->uri = /index.php
[Wed Mar 19 13:44:51 2014] [debug] core.c(3069): [client 98.14.198.144] redirected from r->uri = /index.php
[Wed Mar 19 13:44:51 2014] [debug] core.c(3069): [client 98.14.198.144] redirected from r->uri = /index.php
[Wed Mar 19 13:44:51 2014] [debug] core.c(3069): [client 98.14.198.144] redirected from r->uri = /index.php
[Wed Mar 19 13:44:51 2014] [debug] core.c(3069): [client 98.14.198.144] redirected from r->uri = /index.php
[Wed Mar 19 13:44:51 2014] [debug] core.c(3069): [client 98.14.198.144] redirected from r->uri = /index.php
[Wed Mar 19 13:44:51 2014] [debug] core.c(3069): [client 98.14.198.144] redirected from r->uri = /index.php
[Wed Mar 19 13:44:51 2014] [debug] core.c(3069): [client 98.14.198.144] redirected from r->uri = /index.php
[Wed Mar 19 13:44:51 2014] [debug] core.c(3069): [client 98.14.198.144] redirected from r->uri = /index.php
[Wed Mar 19 13:44:51 2014] [debug] core.c(3069): [client 98.14.198.144] redirected from r->uri = /index.php
[Wed Mar 19 13:44:51 2014] [debug] core.c(3069): [client 98.14.198.144] redirected from r->uri = /admin
[Wed Mar 19 13:44:51 2014] [debug] mod_deflate.c(615): [client 98.14.198.144] Zlib: Compressed 632 to 387 : URL /index.php

Rails可能会使用与http_basic_authenticate_with类似的.htaccess。所以如果我能得到如何修改http_basic_authenticate_with,就像人们通常修改.htaccess那样会很棒,谢谢。

编辑:正如Zhuuanpin Zhu所怀疑的那样,这个问题似乎与http_basic_authenticate_with方法无关。我已将其评论出来,但仍有问题。事实上,如果我试着去:

DOMAIN.com/none-existing-page

我仍然收到500服务器错误,&#34;从r-> uri = /index.php" 消息重定向。在所有逻辑中,我应该得到404错误。

如果我注释掉&#34; root&#34; routes.rb中的命令DOMAIN.com给出了404错误,但DOMAIN.com/none-existing-page仍然发出500 apache错误。

2 个答案:

答案 0 :(得分:0)

你可能有一个递归的redirect_to方法。看日志,

redirected from r->uri = /index.php

此redirected_to显示超过10次,因此请检查您的相关控制器,或发布它。

答案 1 :(得分:0)

问题来自/ var /中的.htaccess,它影响了/ var / landing-page中的网站。