我有一个用Ruby on Rails构建的网站和一个用WordPress构建的博客。主网站的网址为example.com
,博客的网址为blog.example.com
。由于搜索引擎索引网站的方式以及目录博客的偏好而不是子域博客,我希望实现永久重定向,以便example.com/blog/anything
将重定向到blog.example.com/anything
,无论有多少斜线或url包含的参数。因此,即使example.com/blog/a/b/c/d/e?google=true
也应该重定向到blog.example.com/a/b/c/d/e?google=true
到目前为止,如果博客之后只有一个目录,则以下内容有效:
get '/blog/:what', to: redirect('http://blog.codeundercover.com/%{what}')
但是,无论/blog
之后的文字是什么,我都需要这样做。我该怎么做?
答案 0 :(得分:1)
您的路线未使用通配符路线。相反,它是Rails Routing Guide所指的Static Segment
您希望改为使用Wildcard Globbing:
get '/blog/*what', to: redirect('http://blog.codeundercover.com/%{what}'), constraints: { what: /.*/ }
答案 1 :(得分:0)
get "/blog(/*what)", to: redirect("http://blog.codeundercover.com/%{what}")