我有一个网站,它曾经是用 PHP 编写的,我用 Rails 重新编写了。它本质上是一个由帖子组成的博客平台。我仍然使用旧的 URL 方案收到来自 Google 的请求。他们正在呈现索引页面,但他们应该显示引用的特定帖子。例如:
http://domain.com/posts?page=5&postID=6433(渲染索引,第 5 页)
应该:
http://domain.com/posts/6433(显示帖子 6433)
page 参数可以丢弃,它用于评论分页,不再需要。这两个参数都以 params[:page] 和 params[:postID] 的形式传递给 Rails,并转到 post 控制器中的 index 操作。我想可以在控制器中添加一些逻辑(如果 :postID 存在,则显示正确的帖子),但我认为正确的方法是使用 nginx 重写来修改 url,目前我正在使用:
rewrite "^/posts\?page=(.*)&postID=(.*)$" /posts/$2 break;
它似乎对传递的 URL 没有任何影响。
我正在寻求帮助以制作正确的重写 URL 或 RoR 路由。