例如:使其 /BLOG 自动访问 /blog,应该是需要支持所有的 path,故感觉不好在 routes 里面定义。
W3 定义的 URL 本来就是大小写敏感的,你这样做是错误的行为。
如果实在有需求,可以在 controller 里面加 before_action 把所有 URL 请求压扁
before_action :downcase_url
def downcase_url
if request.url != request.url.downcase
redirect_to request.url.downcase, :status => :moved_permanently
end
end
...
随便写的未经测试,反正就那么个意思。
#1 楼 @blacktulip 是的,这种方式是可以的,但是每个请求都要这么一搞,感觉有点累哦。。 我发现貌似使用 rails 自带的 rotues 不好办。。
#1 楼 @blacktulip url 默认大小写确实是敏感的。这种解决方案不错。
#2 楼 @huacnlee 本来应该是敏感的,你可以访问这个: https://ruby-china.org/Topics/20052; 但为什么 https://ruby-china.org/TOPICS 是正常的,我猜是不是哪里做了设置了。
直接在 nginx 做大小写转换。不过除了 windows 向 linux 迁移的项目好像没有多少人去关注 Nginx 实现 url 请求不区分大小写 ngx_http_lower_upper_case