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
相关产品推荐
相关产品推荐

