【发布时间】:2013-04-09 18:05:24
【问题描述】:
我正在尝试使用 rack-rewrite 重写 URL,如下所示:
/group1/feed 变为 /feed,标题为 "GROUP_NAME" => "group1"
目前,我正在使用rack-rewrite 的破解版,它允许我执行以下操作:
use Rack::Rewrite do
rewrite /\/([^\/]*)\/(.+)/, '/$2',
headers: lambda { |base, route| { 'GROUP_NAME' => base } }
end
请注意,base, route 未提供给 rack-rewrite 库存版本中的 headers 块。
我想知道是否有一种不那么老套的方法来完成我正在寻找的东西。
【问题讨论】:
-
您可以访问 $1 变量吗?另外,我建议
%r{/([^/]*)/(.+)},因为没有转义,YMMV 会更清晰。 -
$1变量仅在第二个参数 (/$2) 中可用。我的“hack”允许在 headers 块内访问它(作为base)。
标签: ruby url-rewriting rewrite rack