如何停止方括号([)导致无效的URI错误?

时间:2015-09-05 03:02:00

标签: ruby-on-rails routes

我使用带有FriendlyID的Rails来允许用户创建自己的网页并分享他们的网址。

我的routes.rb文件将页面与用户匹配,如下所示:

  constraints(Hosturls) do
    match '/' => 'users#show'
  end

不幸的是,一些垃圾邮件发送者已经为我的网站创建了大量垃圾反向链接,其中包含方括号 - 请参阅www.example.com/buy [xanax等]。我不需要或希望我的应用程序能够处理方括号(没有该名称的用户且验证不允许),我只想抛出404或优雅地处理它们。

当然,这些链接不起作用,但谷歌会抓取它们,它似乎在没有正确编码方括号的情况下发出请求,因此每个人都会抛出服务器错误 - 此时每天数百个:

  

URI :: InvalidURIError

     

错误的URI(不是URI?):http://www.example.com/buy[xanax

让Rails或routes.rb忽略这些方括号的最佳方法是什么?

更新

根据评论,似乎在Rails的更高版本中修复了此问题。

0 个答案:

没有答案