views:

2252

answers:

4

Hi,

I keep seeing this error in my rails production log, any ideas what the issue is? Im running rails on apache with mongrel clusters. RoutingError (No route matches "/://0" with {:method=>:get}):

Not sure what attempted url is causing the error.

Edit: Heres my routes.rb file

ActionController::Routing::Routes.draw do |map|

map.signout '/account/signout', :controller => 'sessions', :action => 'destroy'
map.signin '/account/signin', :controller => 'sessions', :action => 'new'
map.signup '/account/signup', :controller => 'users', :action => 'new'

map.change_password '/account/change_password', :controller => 'users', :action => 'change_password'
map.forgot_password '/account/forgot_password', :controller => 'users', :action => 'forgot_password'
map.reset_password '/account/reset_password/:id', :controller => 'users', :action => 'reset_password' 

map.preferences '/preferences', :controller => 'preferences', :action => 'index'
map.dashboard '/dashboard', :controller => 'dashboard', :action => 'index'
map.account '/account', :controller => 'account', :action => 'index'
map.affiliate '/affiliates', :controller => 'affiliates', :action => 'index'

map.essentials '/preferences/essentials', :controller => 'preferences/essentials', :action => 'index'
map.contacts '/preferences/contacts', :controller => 'preferences/contacts', :action => 'index'
map.travel '/preferences/travel', :controller => 'preferences/travel', :action => 'index'
map.online '/preferences/online', :controller => 'preferences/online', :action => 'index'
map.reminders '/preferences/reminders', :controller => 'preferences/reminders', :action => 'index'
map.miscellaneous '/preferences/miscellaneous', :controller => 'preferences/miscellaneous', :action => 'index'

map.home '/home', :controller => 'main', :action => 'home'
map.about '/about', :controller => 'main', :action => 'about'
map.gift '/gift', :controller => 'gift', :action => 'index'
map.plans '/plans', :controller => 'main', :action => 'plans'
map.faqs '/faqs', :controller => 'main', :action => 'faqs'
map.contact '/contact', :controller => 'main', :action => 'contact'

map.tos '/terms_of_service', :controller => 'main', :action => 'terms_of_service'
map.privacy '/privacy', :controller => 'main', :action => 'privacy'

map.root :controller => 'main'

map.connect ':controller/:action/:id'
map.connect ':controller/:action/:id.:format'

end

The complete error message from rails error log:

ActionController::RoutingError (No route matches "/account/://0" with {:method=>:get}):
/usr/local/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_controller/routing/recognition_optimisation.rb:66:in `recognize_path'
/usr/local/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_controller/routing/route_set.rb:386:in `recognize'
/usr/local/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_controller/dispatcher.rb:182:in `handle_request'
/usr/local/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_controller/dispatcher.rb:110:in `dispatch_unlocked'
/usr/local/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_controller/dispatcher.rb:123:in `dispatch'
/usr/local/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_controller/dispatcher.rb:122:in `synchronize'
/usr/local/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_controller/dispatcher.rb:122:in `dispatch'
/usr/local/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_controller/dispatcher.rb:132:in `dispatch_cgi'
/usr/local/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_controller/dispatcher.rb:39:in `dispatch'
/usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel/rails.rb:76:in `process'
/usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel/rails.rb:74:in `synchronize'
/usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel/rails.rb:74:in `process'
/usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel.rb:159:in `process_client'
/usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel.rb:158:in `each'
/usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel.rb:158:in `process_client'
/usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel.rb:285:in `run'
/usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel.rb:285:in `initialize'
/usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel.rb:285:in `new'
/usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel.rb:285:in `run'
/usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel.rb:268:in `initialize'
/usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel.rb:268:in `new'
/usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel.rb:268:in `run'
/usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel/configurator.rb:282:in `run'
/usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel/configurator.rb:281:in `each'
/usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel/configurator.rb:281:in `run'
/usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails:128:in `run'
/usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel/command.rb:212:in `run'
/usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails:281
/usr/local/bin/mongrel_rails:19:in `load'
/usr/local/bin/mongrel_rails:19

Excerpt from apache vhost file:

  RewriteCond %{SERVER_PORT} !^443$
  RewriteRule ^/(.*)$ https://%{SERVER_NAME}/$1 [R,L]

  # Redirect all non-static requests to Mongrel
  RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
  RewriteRule ^/(.*)$ balancer://mongrel1%{REQUEST_URI} [P,QSA,L]

  <Proxy balancer://mongrel1>
    BalancerMember http://127.0.0.1:3000
    BalancerMember http://127.0.0.1:3001
  </Proxy>

  ProxyPass / balancer://mongrel1/
  ProxyPassReverse / balancer://mongrel1/
  ProxyPreserveHost on

Thanks!

A: 

It appears that there is a problem inside your config/routes.rb file.

If you could add the contents of the routes.rb file and the URL you are trying to load to your message, we could help further.

Gdeglin
A: 

map.connect ':controller/:action/:id' map.connect ':controller/:action/:id.:format'

Interchange these statements with order to given below.

map.connect ':controller/:action/:id.:format' map.connect ':controller/:action/:id'

there are no restful routes, provided in routes.rb so the problem may not be of method defination, or calling any member method.

the format is just overriding the url source.

T.Raghavendra
+1  A: 

Uh - the issue appears to be that someone is requesting a URL of "/account/://0"? Why should that not produce a routing error? I would not expect that to hit any route you've defined.

James Baker
+1  A: 

Could this simply be a hacking attempt ?

MickTaiwan