我有很多这样的重定向:
# config/routes.rb
get 'pages/teachers_tour', to: redirect('/pages/teachers-tour', status: 301)
即尝试使我的网址对Google更加友好。
这在测试和开发模式下有效(尽管我丢失了查询参数)
但是,当我将其实时投入生产时,我看到页面未找到错误。
我确实在生产中使用CDN,但是在没有CDN的登台中也会出现问题。我能够使用CDN(Cloudflare)在生产中临时修复此问题。
如何永久解决此问题?有没有办法更改网址名称,以便查询参数被传输?
答案 0 :(得分:1)
i.e trying to have my urls more google friendly.
如果仅出于此原因,我建议您使用as
而不是重定向。只是要更改显示的子弹。
编辑起来更加清晰:
get 'pages/teachers_tour', as: 'teachers-tour', to: "pages#teachers_tour"
我想这也会解决您的参数问题。
答案 1 :(得分:0)
事实证明,这是由于config/routes.rb
文件中的此语句
# must be on last line
match '*unmatched', to: 'application#route_not_found', via: :all if Rails.env.production?
不幸的是,我没有向所有团队传达这是最后一行的重要性,因此重定向被放置在此行之后,因此从未达到。
当时,我知道从软件工程的角度来看这是一件很糟糕的事情,但是对证明自己是正确的却不高兴。