如何在Ruby on Rails中将/页/索引页重定向到/页(以及/页重定向到/页/)



我希望/page/index重定向到/page/但是

get '/page/index' => redirect('/page/')

不能工作。我是否必须在索引控制器中使用redirect_to(我想避免它,因为它会导致页面的完整请求/重新加载)?同样,我注意到rails将/page和/page/视为两个不同的url,我如何将/page重定向到/page/?

get '/page' => redirect('/page/') 

也不工作(它给了我无限重定向问题)。

如果你不想导致页面完全重载,那么你就不应该在路由中使用"redirect",因为它只会发出浏览器重定向。这将导致Rails发出301"永久移动"。这实际上意味着"有一个/page/index路由,但这是一个错误,我们不再使用它,请转到/page,永远不要回到这里。"如果是这样,那么这就是你想要做的。如果你正在使用Passenger,并将继续使用Passenger,在htaccess文件中添加一个Apache重定向规则会更有效。

这甚至是一个问题似乎也很奇怪。/page/index、/page和/page/是如何成为指向同一个index#index操作的url的?这个索引控制器是什么?通常的情况是,比如,有一个PagesController,它把你的主页放在index action。然后:

root to: 'pages#index"

<%= root_url %>

redirect_to root_path

始终走到正确的路径,你不必担心尾随斜杠之类的

最新更新