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

Rails 7生产环境Cookie问题:domain.com移动端重定向失效

解决Rails生产环境移动端Chrome域名重定向失效问题

1. 修正Apache重定向配置的语法错误

你提到的permenant redirect / www.domain.com存在拼写错误(应为permanent),且Apache标准重定向配置需明确协议并覆盖全端口,建议替换为以下配置:

# HTTP 80端口重定向
<VirtualHost *:80>
    ServerName domain.com
    ServerAlias *.domain.com
    Redirect permanent / https://www.domain.com/
</VirtualHost>

# HTTPS 443端口重定向(若启用SSL)
<VirtualHost *:443>
    ServerName domain.com
    ServerAlias *.domain.com
    # 保留原有SSL证书配置
    Redirect permanent / https://www.domain.com/
</VirtualHost>

配置完成后重启Apache服务:sudo systemctl restart apache2

2. 清除移动端Chrome的缓存与DNS记录

移动端Chrome可能缓存了旧的域名解析或重定向规则,执行以下操作:

  • 打开Chrome设置 → 隐私和安全 → 清除浏览数据,勾选「缓存的图片和文件」,时间范围选择「所有时间」后清除。
  • 在地址栏输入chrome://net-internals/#dns,点击「清除主机缓存」;再输入chrome://net-internals/#http-cache清除HTTP缓存。

3. 检查Google Domain的DNS解析配置

确保domain.com的DNS记录配置正确:

  • 登录Google Domain后台,删除domain.com的所有A/AAAA记录(若存在),添加一条CNAME记录,将domain.com指向www.domain.com。
  • 等待DNS生效(通常需10-30分钟,移动端可切换飞行模式刷新DNS)。

4. 验证Rails Cookie的跨域名配置

针对最初的支付后登出问题,确保Rails会话Cookie的域名配置正确,修改config/initializers/session_store.rb:

Rails.application.config.session_store :cookie_store, 
  key: '_your_app_session', 
  domain: '.domain.com', # 允许所有子域名共享Cookie
  secure: true, # 仅HTTPS下传输Cookie
  httponly: true, # 禁止JS访问Cookie
  same_site: :lax # 适配支付跳转场景

部署配置后重启Rails应用。

5. 启用HSTS强制HTTPS访问

在Apache配置中添加HSTS响应头,强制浏览器长期使用HTTPS,避免HTTP访问的缓存问题:

<IfModule mod_headers.c>
    Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
</IfModule>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 18:53:32