2011-05-12 3 views
4

웹 사이트 알림 이메일에서 링크를 클릭하면 일관되게 세션 변수를 잃어 버렸습니다. 오랫동안 내 머리를 깨뜨린 후, 나는 domain-name.com이하는 동안 www.domain-name.com에 세션 변수가 포함되어 있지 않다는 것을 알게되었습니다 !!여러 하위 도메인에서 세션 변수를 사용하려면 어떻게해야합니까?

왜 이런 일이 발생합니까? 그리고 일을 올바르게 설정하려면 어떻게해야합니까 (php-apache)?

+0

감사합니다 문제! 이것은 내가 domain.com 한다 RewriteCond %에 www.domain.com '옵션 + FollowSymLinks를 한다 RewriteEngine로 리디렉션하려면 내 htaccess로 파일에 추가 것입니다 {HTTP_HOST}^domain.com [NC] 한다 RewriteRule^(. *) $ http://www.domain.com/$1 [r = 301, nc] 다시 한번 감사드립니다! :) – sniper

답변

1

'www'에는 기술적으로 특별한 것이 없습니다. 'domain.com'도메인은 'www.domain.com'과 다릅니다. 그것들을 연결하려면, 보통 HTTP 서버 설정에서 명시 적으로 어딘가에 있어야합니다.

+0

감사 Bignose! www.domain.com에서 domain.com을 가리키면 문제를 빨리 해결할 수 있습니까? 나는 너무 많은 서버 사용자가 아니며 프로그래머가 많다. 그러나 올바른 방법으로 해결하는 법을 배우기를 원할 것입니다! – sniper

3

세션은 도메인 별 쿠키를 기반으로합니다.
www.domain.comdomain.com과 다른 도메인이므로 쿠키가 별도로 유지됩니다.

표준 연습은 하나의 변형을 선택하고 301은 다른 변형을 원하는 것으로 리디렉션합니다.

+0

오, 이제는 왜 내가 세션을 잃어 버렸는지에 대해 이해가됩니다! :) – sniper

2

세션 ID는 쿠키에 저장되며 쿠키에는 도메인 이름에 대한 대응 방법을 지정할 수 있습니다.

PHP의 setcookie 설명서를 살펴보십시오.

당신은과 PHP의 세션 쿠키 설정을 변경할 수 있습니다

ini_set("session.cookie_domain", ".mydomain.com"); 
htaccess로 파일로 리디렉션하는 방법
+0

감사합니다 니칸! 간단히 setcookie 문서를 살펴 보았습니다. 더 읽을 것입니다! ".mydomain.com"은 domain.com (http://www.domain.com 및 http://domain.com 포함)의 모든 하위 도메인을 포함합니까? – sniper

관련 문제