正确处理www的方法.而非www.当使用会话时


Correct way of handling www. and non www. when working with sessions

直到今天才发现这两个网站不是同一个网站,实际上是相互复制的。

我目前遇到的错误是我正在以正常方式设置登录会话:

$_SESSION['logged'] = 1;

这个会话可以被接收并在

上工作
domain.com

但是当用户导航到任意:

时不起作用
www.domain.com

我该如何处理这个?我喜欢在导航栏中使用绝对链接,例如:

http://www.domain.com/about

但是这会导致用户不使用www。一直等等。

是否有一种方法允许cookies在www。和非WWW或者有更好的方法来处理这个?可能是htaccess类型重定向到非www。页面每次?

谢谢你的建议。克雷格。

不能同时使用example.comwww.example.com。你应该选择一个,然后重定向另一个。例如,如果您想使用www.example.com,那么将example.com重定向到www.example.com。在.htaccess:

中可以很容易地做到这一点
RewriteCond %{HTTP_HOST} ^example.com$
RewriteRule (.*) http://www.example.com/$1 [R=301,L] 

或者在Nginx中:

server {
    listen       80;
    server_name  example.com;
    return       301 http://www.example.com$request_uri;
}

如果你想重定向www.example.comexample.com,那么你可以使用:

RewriteCond %{HTTP_HOST} ^www'.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]