2011-03-22 13 views
7

मेरे गर्व में रेल ऐप में, मुझे एएसपी, ज़िप और रार फ़ाइलों के लिए अनुरोध करने वाले सभी प्रकार के यादृच्छिक हमले हुए। रेल ने उम्मीद के अनुसार 404 पेज प्रस्तुत किया, लेकिन मेरी उत्पादन लॉग फ़ाइल को निम्नलिखित के जैसे रूटिंग एरर स्टैकट्रैस डंप के साथ जाम किया गया है।उत्पादन लॉग फ़ाइलों में रेल रूटिंग एरर स्टैकट्रैक प्रिंटआउट को अक्षम कैसे करें?

मेरा प्रश्न है: क्या मैं अपाचे/यात्री में कुछ पैटर्न के साथ यूआरएल को अवरुद्ध कर सकता हूं? या कम से कम मैं त्रुटि को लॉग इन करने के लिए रेल को कॉन्फ़िगर कर सकता हूं और पूरे स्टैकट्रैक को मुद्रित नहीं कर सकता? धन्यवाद!

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) 

उत्तर

5

आप अपने सभी अन्य मार्गों कि इस सामान को पकड़ने और अपनी पसंद के नियंत्रक/कार्रवाई प्रस्तुत करना होगा के बाद एक कैच सभी मार्ग जोड़ सकते हैं:

match '*' => 'errors#not_found' 

तुम भी केवल मैच .asp चुन सकते हैं या जो कुछ भी करता है, तो आप चाहते थे:

match '*.:format' => 'errors#not_found', :constraints => {:format => /(asp|zip|rar)/i} 
+0

धन्यवाद! मै उसे करने की एक कोशिश तो करूंगा। –

1

रेल 4 और 5 जवाब:

match '*any', to: 'not_found#all', via: [:get, :post] 

वाइल्डकार्ड पैरामीटर से मेल खाने के लिए, इसमें इस नाम में एक नाम होना चाहिए - any

class NotFoundController < ApplicationController 
    def any 
    Logger.new('log/not_found.log').info(request.fullpath) 
    # To render nothing: 
    # head :not_found #Rails 5 
    # render nothing: true, status: :not_found # for Rails 4 

    #To render 404 page 
    render file: 'public/404.html', status: :not_found, layout: false 
    end 
end 
संबंधित मुद्दे