好的,所以我想将所有非 www 域请求重定向到 www.mydomain.com 只是为了谷歌/搜索引擎的一致性(我知道所有关于规范标签/谷歌网站管理员工具的知识,让我们忽略它)
我知道通过 Nginx(或 Apache 的 htaccess)执行此操作的标准方法。
但是,问题是这可能会破坏用户会话,对吗?例如,如果有人通过 domain.com 登录,他们的 cookie 将仅对 domain.com 有效,而不是 www.domain.com,因此通过重定向我会让所有用户都必须再次登录。
有没有办法在不中断用户会话的情况下进行重定向?
也许我可以做一些检查cookies的事情?如果它不存在,则进行重定向。如果是,则不要重定向。
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,并且不会中断当前用户会话?