【发布时间】:2012-04-19 10:22:02
【问题描述】:
好的,所以我想将所有非 www 域请求重定向到 www.mydomain.com 只是为了 Google/搜索引擎的一致性(我知道所有关于规范标签/Google 网站管理员工具的知识,让我们忽略它)
我知道通过 Nginx(或 Apache 的 htaccess)执行此操作的标准方法。
但是,这可能会破坏用户会话,对吧?例如,如果有人通过 domain.com 登录,他们的 cookie 将只对 domain.com 有效,而不是 www.domain.com,所以通过重定向我会让所有用户都必须重新登录。
有没有办法在不中断用户会话的情况下进行重定向?
也许我可以做一些检查 cookie 的事情?如果它不存在,则进行重定向。如果是,则不要重定向。
def index #controller method for requests from domain.com or www.domain.com
@user = @requestManager.authorizedUser(cookies, params, logger) //check for cookies
#if no cookies (Google bot or new visitor)
#and request is from domain.com, redirect to www.domain.com
if(@user == nil and request.host =~ /^domain.com/)
logger.info("Redirecting")
redirect_to "http://www.domain.com", :status => 301
return
end
end
这是否可以将非 www 重定向到 www.domain.com,并且不会中断当前用户会话?
【问题讨论】:
-
如果您将人们访问 www.example.com 的实例重定向到 example.com,那么他们将始终登录到 example.com。
-
@JesseWolgamott 但我想要相反...
-
反之亦然
-
@JesseWolgamott 因此,如果有人拥有 example.com 的 cookie,而我重定向到 www.example.com,他们根本不需要重新登录?
-
您在接受此更改后是否担心现有用户?
标签: ruby-on-rails cookies