How can I redirect incorrect url to 404 page in routes.rb? Now I use 2 examples code:
# example 1
match \"/go/(*url)\", to: redirect { |params, request| Addr
The simplest thing to do is to make sure your routes do not match bad URLs. By default Rails will return a 404 for routes that do not exist.
If you can't do this the default 404 page lives at /404 so you can redirect to that location. Something to keep in mind here, however, is that this type of redirect will perform a 301 Permanent Redirect instead of a 302. This may not be the behavior that you want. To do this you can do the following:
match "/go/(*url)", to: redirect('/404')
Instead, I'd recommend setting up a before filter in your action that instead raises a not found exception. I'm not exactly sure if this exception is in the same place in Rails 4, but with Rails 3.2 I'm currently using:
raise ActionController::RoutingError.new('Not Found')
You can then do any processing and URL checking in the controller (if complicated checking of the URL format is required).