我希望/page/index重定向到/page/,但是
get '/page/index' => redirect('/page/')不起作用。我必须在索引控制器中使用redirect_to吗(我想避免它,因为它会导致页面的完全请求/重新加载)?类似地,我注意到rails将/page和/page/视为两个不同的urls,如何将/page重定向到/page/?作为
get '/page' => redirect('/page/') 也不能工作(它给了我无限的重定向问题)。
发布于 2013-06-10 01:13:02
如果您不想导致页面完全重载,那么您不应该在路由中使用" redirect“,因为这只会发出浏览器重定向。这将导致Rails发出301“已永久移动”。这本质上意味着“有一个/page/index路由,但它是一个错误,我们不再使用它,请转到/page,永远不要再回到这里。”如果是这样的话,这就是你想要做的。如果您正在使用Passenger并将继续使用Passenger,那么将Apache重定向规则放在htaccess文件中会更有效。
这似乎也很奇怪,这甚至是一个问题。如何将/page/index、/page和/page/作为指向相同index#index操作的URL出现?这个索引控制器是什么?通常的事情是,比如说,有一个PagesController,它在索引操作中包含您的主页。然后:
root to: 'pages#index"和
<%= root_url %>和
redirect_to root_path总是走正确的路径,你不必担心尾部的斜杠之类的问题。
https://stackoverflow.com/questions/17007218
复制相似问题