相关疑难解决方法(0)

Rails ActionController :: BadRequest在生产服务器上导致500服务器错误

我们有一个土耳其网站,一些旧链接被一些搜索引擎抓取.链接似乎格式不正确或无法处理,从而导致ActionController::BadRequest错误.在本地计算机上development env导致返回Rails错误页面ActionController::BadRequest.

但是在服务器上我们得到了一个500 server error.这个问题在这里的其他几个页面上讨论过.但是这些解决方案都没有帮助.

在这两种情况下,我们page not found都想重定向到-page.

我已经尝试过rescue_from ActionController::BadRequest,并rescue_from ActionController::RoutingErrorApplicationController因上述物品的,他们指出BadRequest变成RoutingError.

但他们都没有奏效.

我希望有人遇到同样的问题并且已经解决了.提前感谢您的回答.

编辑:

一个示例问题 - 网址是http://localhost:3000/Di%c5%ef%bf%bd-f%c4%b1r%c3%a7as%c4%b1.

终端输出:

ActionController::BadRequest (ActionController::BadRequest):
  actionpack (4.0.0) lib/action_dispatch/routing/route_set.rb:37:in `block in call'
  actionpack (4.0.0) lib/action_dispatch/routing/route_set.rb:33:in `each'
  actionpack (4.0.0) lib/action_dispatch/routing/route_set.rb:33:in `call'
  actionpack (4.0.0) lib/action_dispatch/journey/router.rb:71:in `block in call'
  actionpack (4.0.0) lib/action_dispatch/journey/router.rb:59:in `each'
  actionpack (4.0.0) lib/action_dispatch/journey/router.rb:59:in `call'
  actionpack (4.0.0) lib/action_dispatch/routing/route_set.rb:655:in `call'
  newrelic_rpm (3.6.4.122) lib/new_relic/rack/error_collector.rb:12:in `call' …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails server-error ruby-on-rails-4

10
推荐指数
1
解决办法
6400
查看次数

如何重定向到routes.rb中的404页面?

如何将不正确的URL重定向到routes.rb中的404页面?现在我使用2个示例代码:

# example 1
match "/go/(*url)", to: redirect { |params, request| Addressable::URI.heuristic_parse(params[:url]).to_s }, as: :redirect, format: false

# example 2
match "/go/(*url)", to: redirect { |params, request| Addressable::URI.heuristic_parse(URI.encode(params[:url])).to_s }, as: :redirect, format: false
Run Code Online (Sandbox Code Playgroud)

但是当我尝试在'url'参数中使用俄语单词时,在第一个例子中我得到500页(坏URI),在第二个 - 我得到重定向到stage.example.xn - org-yedaa​​a1fbbb/

谢谢

redirect ruby-on-rails

9
推荐指数
2
解决办法
2万
查看次数