Rails cookie会话共享和“www.example.com”或“example.com”问题

时间:2009-02-27 20:18:52

标签: ruby-on-rails apache

当人们在www.example.com上访问我的应用并登录时,他们会获得一个cookie。我正在使用cookie选项在Rails上存储会话。访问example.com(没有www),他们必须再次登录,因为Firefox无法识别上一个会话。

那么,您认为避免这种情况的最佳方法是什么?

我想我将使用这样的小.htaccess规则(Apache + Passenger):

RewriteEngine on
RewriteCond %{HTTP_HOST} ^example\.com
RewriteRule ^(.*)$ http://www.example.com/$1 [R=permanent,L]

你们认为这是一个很好的解决方案吗?

2 个答案:

答案 0 :(得分:4)

我要做的是:

  1. 为domain.com和www.domain.com
  2. 设置单独的虚拟主机
  3. 绝不发布指向domain.com的链接,仅发布到www.domain.com
  4. 当用户代理请求http://domain.com/时,使用301响应重定向到http://www.domain.com/
  5. 仅发布www.domain.com上的Cookie
  6. 不要尝试从domain.com提供整个网站,只是主页面(重定向)
  7. 根本不需要在此解决方案中使用rails。

答案 1 :(得分:0)

创建单独的虚拟主机条目:

ServerName domain.com
Redirect permanent / http://www.domain.com

重定向将用户指向您的其他虚拟主机:

ServerName www.domain.com