我使用带有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的更高版本中修复了此问题。