gpt4 book ai didi

ruby-on-rails - 如何在生产日志文件中禁用 Rails 路由错误堆栈跟踪打印?

转载 作者:行者123 更新时间:2023-12-04 01:04:40 26 4
gpt4 key购买 nike

在我的项目 rails 应用程序中,我收到了所有类型的随机攻击请求 asp、zip 和 rar 文件。 Rails 按预期呈现 404 页面,但我的生产日志文件被 RoutingError 堆栈跟踪转储堵塞,如下所示。

我的问题是:我可以在 Apache/Passenger 中阻止具有特定模式的 URL 吗?或者至少我可以将 Rails 配置为仅记录错误本身而不打印整个堆栈跟踪?谢谢!

Processing ApplicationController#index (for 100.222.237.7 at 2011-03-22 10:59:54) [GET]

ActionController::RoutingError (No route matches "/include/upfile_flash.asp" with {:host=>"www.myhost.com", :method=>:get, :domain=>"myhost.com", :subdomain=>"www"}):
passenger (2.2.15) lib/phusion_passenger/rack/request_handler.rb:92:in `process_request'
passenger (2.2.15) lib/phusion_passenger/abstract_request_handler.rb:207:in `main_loop'
passenger (2.2.15) lib/phusion_passenger/railz/application_spawner.rb:441:in `start_request_handler'
passenger (2.2.15) lib/phusion_passenger/railz/application_spawner.rb:381:in `handle_spawn_application'
passenger (2.2.15) lib/phusion_passenger/utils.rb:252:in `safe_fork'
passenger (2.2.15) lib/phusion_passenger/railz/application_spawner.rb:377:in `handle_spawn_application'
passenger (2.2.15) lib/phusion_passenger/abstract_server.rb:352:in `__send__'
passenger (2.2.15) lib/phusion_passenger/abstract_server.rb:352:in `main_loop'
passenger (2.2.15) lib/phusion_passenger/abstract_server.rb:196:in `start_synchronously'
passenger (2.2.15) lib/phusion_passenger/abstract_server.rb:163:in `start'
passenger (2.2.15) lib/phusion_passenger/railz/application_spawner.rb:222:in `start'
passenger (2.2.15) lib/phusion_passenger/spawn_manager.rb:253:in `spawn_rails_application'
passenger (2.2.15) lib/phusion_passenger/abstract_server_collection.rb:126:in `lookup_or_add'
passenger (2.2.15) lib/phusion_passenger/spawn_manager.rb:247:in `spawn_rails_application'
passenger (2.2.15) lib/phusion_passenger/abstract_server_collection.rb:80:in `synchronize'
passenger (2.2.15) lib/phusion_passenger/abstract_server_collection.rb:79:in `synchronize'
passenger (2.2.15) lib/phusion_passenger/spawn_manager.rb:246:in `spawn_rails_application'
passenger (2.2.15) lib/phusion_passenger/spawn_manager.rb:145:in `spawn_application'
passenger (2.2.15) lib/phusion_passenger/spawn_manager.rb:278:in `handle_spawn_application'
passenger (2.2.15) lib/phusion_passenger/abstract_server.rb:352:in `__send__'
passenger (2.2.15) lib/phusion_passenger/abstract_server.rb:352:in `main_loop'
passenger (2.2.15) lib/phusion_passenger/abstract_server.rb:196:in `start_synchronously'

Rendering /myapp/public/404.html (404 Not Found)

最佳答案

您可以在所有其他路由之后添加一个捕获所有路由来捕获这些内容并呈现您选择的 Controller / Action :

match '*' => 'errors#not_found'

你甚至可以选择只匹配 .asp 或任何你想要的:
match '*.:format' => 'errors#not_found', :constraints => {:format => /(asp|zip|rar)/i}

关于ruby-on-rails - 如何在生产日志文件中禁用 Rails 路由错误堆栈跟踪打印?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5386394/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com