【发布时间】:2023-03-18 00:57:02
【问题描述】:
如何将不正确的 url 重定向到 routes.rb 中的 404 页面? 现在我使用 2 个示例代码:
# example 1
match "/go/(*url)", to: redirect { |params, request| Addressable::URI.heuristic_parse(params[:url]).to_s }, as: :redirect, format: false
# example 2
match "/go/(*url)", to: redirect { |params, request| Addressable::URI.heuristic_parse(URI.encode(params[:url])).to_s }, as: :redirect, format: false
但是当我尝试在“url”参数中使用俄语单词时,在第一个示例中,我得到 500 页(错误的 URI),在第二个示例中 - 我重定向到 stage.example.xn--org-yedaaa1fbbb/
谢谢
【问题讨论】:
-
您能否提供一些您尝试使用的示例 URL?
-
一些样本:stage.example.org/go/газета stage.example.org/go/газета.рф
-
如果你想从控制器内重定向到 404 你也可以使用
redirect_to("/404") && return