You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Rails 5.1路由配置:主域名博客链接重定向至子域名问题

解决Rails 5.1主域名博客路由重定向到子域名时缺失/blog路径的问题

你的问题根源在于通配符路由中%{all}捕获的是blog/之后的部分内容,而你当前的重定向路径直接使用了这部分内容,导致丢失了/blog前缀。我们只需要调整重定向的path参数,手动补上这个前缀即可。

正确的路由配置

Rails.application.routes.draw do
  # 处理带路径的博客文章请求,保留/blog前缀
  get 'blog/*all' => redirect(subdomain: 'blog', path: '/blog/%{all}', protocol: 'https')
  
  # 处理/blog根路径的重定向,统一跳转到子域名的根
  get '/blog' => redirect(subdomain: 'blog', path: '/', protocol: 'https')
end

配置说明

  • 对于blog/*all的路由:

    • subdomain: 'blog' 将请求切换到blog子域名
    • path: '/blog/%{all}' 把捕获到的all内容(也就是blog/之后的路径片段)拼在/blog/后面,完整保留原有的路径结构
    • protocol: 'https' 强制使用HTTPS协议,避免出现你描述的HTTP跳转问题
  • 对于/blog根路径:

    • 直接重定向到blog.dolgins.com的根目录(如果你的子域名博客根路径本身就是/blog,也可以把path设为/blog)

这样测试原地址https://www.dolgins.com/blog/2018/5/22/unique-hand-crafted-mosaic-jewelry-at-richard-dolgin-private-jeweler时,就会正确重定向到https://blog.dolgins.com/blog/2018/5/22/unique-hand-crafted-mosaic-jewelry-at-richard-dolgin-private-jeweler,完全符合你的需求。

内容的提问来源于stack exchange,提问作者Joe D

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 09:29:43