Apache重定向规则中自定义Cookie设置失败,求正确配置方法
你的配置失效核心原因是缺少重定向指令和规则终止标识,同时Cookie参数设置可进一步优化。以下是修正方案及说明:
修正后的完整配置
RewriteCond %{REQUEST_URI} ^/(blog)$ RewriteRule ^ http://blog.example.com/ [L,R=301,CO=testsession:yes:.example.com:/:3600:secure:HttpOnly]
参数详解
L:标记当前规则为最后执行的规则,避免后续规则干扰流程R=301:明确发起永久重定向,只有触发重定向响应时,CO标志设置的Cookie才会被浏览器正确接收CO参数拆分(冒号分隔):testsession:Cookie名称yes:Cookie值.example.com:Cookie生效域(开头的点表示匹配所有子域,含blog.example.com;若仅需在blog.example.com生效,可改为.blog.example.com)/:Cookie生效路径(根路径表示全站范围内生效)3600:Cookie过期时间(单位秒,此处设为1小时;留空则为会话Cookie,关闭浏览器即失效)secure:仅在HTTPS连接下发送Cookie(HTTPS站点建议添加,HTTP环境可省略)HttpOnly:禁止前端JS读取Cookie,提升安全性
验证步骤
- 确认Apache已启用
mod_rewrite模块(可通过a2enmod rewrite命令启用) - 替换原有规则后重启Apache服务
- 清除浏览器缓存,访问原站点
/blog路径,通过浏览器开发者工具的「Application」→「Cookies」面板,检查testsessionCookie是否在blog.example.com域下生成
内容的提问来源于stack exchange,提问作者Arivazhagan
相关产品推荐
相关产品推荐

