ActionController::RoutingError ([GET] "/google83362a7a0f381ff0.html" に一致するルートはありません):
- 本番環境で上記のログが表示されます。これを防ぐにはどうすればよいですか。
- ユーザーが URL を間違って入力した場合、一般的なエラー ページにリダイレクトするにはどうすればよいですか
ActionController::RoutingError ([GET] "/google83362a7a0f381ff0.html" に一致するルートはありません):
ルートが一致しない場合は、ユーザーを目的のページにリダイレクトできます
routes.rb ファイルの末尾に次のコードを書き留めます。
/config/routes.rb 内
#If no route matches
match ":url" => "application#redirect_user", :constraints => { :url => /.*/ }
次に、ユーザーを application_controller.rb ファイルのエラー ページにリダイレクトします。
*/app/controllers/application_controller.rb内*
def redirect_user
redirect_to '/404'
end
そのためにコントローラーをトリガーする必要はありません。
これを の最後のルールとして追加するだけですroutes.rb
:
match '*path', via: :all, to: redirect('/404')