使用{:trailing_slash =>在链接中添加尾部斜杠非常简单true},但这并不能说明用户是否输入了非斜线网址。有没有办法通过路由器中的重定向强制执行尾部斜杠?
get "/:controller/:id" => redirect{|params| "/#{params[:controller]}/#{params[:id]}/" }
以上导致循环循环。
为什么?
上的“./subclass”的相对链接
/parent/1
与
大不相同/parent/1/
答案 0 :(得分:8)
在config / application.rb文件中,添加
config.action_controller.default_url_options = { :trailing_slash => true }
在Application类
中答案 1 :(得分:2)
经过测试并可以在Rails 6+中工作
放入您的config/application.rb
文件:
config.action_controller.default_url_options = { :trailing_slash => true }
注意::这不会自动重定向任何网址,而不会在后面加上斜杠。它只是在应用程序内任何链接的末尾附加“ /”。 为了强制并301重定向所有不带斜杠的URL到末尾带有斜杠的URL,您可能要使用gem rack-rewrite。