2012-03-12 2 views
0

은행에 연결된 판매자 웹 사이트가 있습니다. 내가 은행이 성공 URL을 정의했습니다 :www를 변경하면 세션이 만료됩니다.

http://www.mydomain.com/deposit.php 

사용자가 지불 프로세스를 시작할 때 그는 은행 웹 사이트에 입력하고 결제 후 그는 내 웹 사이트의 성공 URL로 리디렉션. 사용자가 (www가없는)이 URL로 내 웹 사이트를 입력하면 :

http://mydomain.com/ 

세션이 만료되고 그는 다시 로그인해야합니다. 이 URL을 입력 할 때 :

http://www.mydomain.com/ 

세션이 만료되지 않으며 모든 것이 okey입니다. 이 문제를 어떻게 해결할 수 있습니까?

+0

세션을 어떻게 진행하고 있습니까? 쿠키 또는 URL? –

+1

"yourdomain.com"을 www.yourdomain.com으로 자동으로 리디렉션하는 방식으로 서버를 변경하는 것이 좋습니다. 일반적으로 웹 색인 생성은 더 행복합니다. –

답변

1

www가 있습니다. (또는 http://mydomain.com을 사용하여 강제로) .htaccess 파일을 사용하십시오.

RewriteCond %{HTTP_HOST} !^www.mydomain\.com [NC] 
RewriteRule ^(.*)$ http://www.mydomain.com/$1 [R] 

! 에서 RewriteCondition은 주소가 다음과 같지 않을 때 RewriteRule로 리다이렉트한다는 것을 서버에 알려줍니다.

웹에서 .htaccess를 사용하여 더 많은 재 작성 팁을 사용할 수 있습니다.

참고 :

RewriteEngine On 

을 그리고 구성이 mod_rewrite를 지원 아파치 (또는 다른 호스트를) 확인 :이 작업을 위해, 당신은 당신의 .htaccess 파일이 먼저 활성화해야합니다. HTML5의 상용구의 .htaccess에서 촬영

2

세션 쿠키는 아마도 www.mydomain.com에 연결되어 있으므로 mydomain.com에 액세스하면 브라우저는 세션 쿠키를 보내지 않도록 선택합니다.

ini_set 함수와 session.cookie_domain 값을 살펴보십시오.

if (count(explode('.', $domain)) > 2) { 
    ini_set('session.cookie_domain', $domain); 
} 
+0

이 코드를 어디에 삽입합니까? 어떤 문자열을 $ domain에 설정해야합니까? –

1

:

<IfModule mod_rewrite.c> 
    RewriteCond %{HTTPS} !=on 
    RewriteCond %{HTTP_HOST} !^www\..+$ [NC] 
    RewriteRule^http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 
</IfModule> 

당신의 .htaccess 파일에서 문제를 해결해야한다고 배치. 그러나 다른 사람은이 문제의 원인이 무엇인지 자세히 설명해야합니다.

편집 : 파블로 산타 크루즈가 나에게 맞는 것처럼 보입니다.

관련 문제