2011-07-22 2 views
10

私は作者を持つインタラクティブなWebサイトを持っています。著者はwww.mysite.comのサイトに入り、ログインすると 、セッションvaribleはurlのwith-wwwとwithout-wwwの別のセッション

$_SESSION[loggedid]=true; 

とサイトテーマが変更になります。

しかし、彼がログインしていてもmysite.comに入ったら(彼はデフォルトのテーマを見て、書き込めません) 私は彼らが異なるセッションだと思いますか?それは私のサーバーやブラウザに依存するのでしょうか?どのように私はこれを2つ、同じセッションにするか、またはユーザーを1つから1つにリダイレクトすることができますか?

答えて

13

あなたの.htaccessファイルにこれを追加します。この

RewriteEngine on 
RewriteBase/
RewriteCond %{HTTP_HOST} ^mysite\.com 
RewriteRule ^(.*)$ http://www.mysite.com$1 [R=permanent,L] 
+0

なぜdownvoteにリダイレクトされます?これは完全に正当な解決法であり、広く使用されています。 OPは "...またはユーザーを1から1へリダイレクトしますか?" – AlienWebguy

+3

コメントなしのDownvote?特定のドメインを強制することで問題が解決され、実際にSEOに役立ちます! –

+0

これらの行は問題を解決するだけでなく、mysite.comをすべてwww.mysite.comにリダイレクトします。 – erdomester

1

使用:すべてのサブドメインと一致するドメインを設定するにはhttp://ca3.php.net/session_set_cookie_params は、この操作を行います。

session_set_cookie_params($lifetime, '/', '.domain.com'); 

をあなたは、呼び出しの前にあることを使用する必要がありますsession_start()。 (.を開始点に注意して、あなたのsession.cookie_pathドメイン.yourdomainname.tldに設定

$currentCookieParams = session_get_cookie_params(); 

$rootDomain = '.example.com'; 

session_set_cookie_params( 
    $currentCookieParams["lifetime"], 
    $currentCookieParams["path"], 
    $rootDomain, 
    $currentCookieParams["secure"], 
    $currentCookieParams["httponly"] 
); 

session_name('mysessionname'); 
session_start(); 
0

あなたは、ドメイン以外のすべての現在の設定を維持しましょう上記のリンクからまっすぐに取らこのコード例を使用することができます)。先頭のドットは、セッションは、すべてのドメインに影響を与えることを意味します

session_set_cookie_params(0, '/', '.yourdomain.com'); 

を使用して

0
session.cookie_domain = 

php.iniのディレクティブ

試してみます。 SUHOSHINに気をつけろ!時にはこの機能を制限することもあります。

5

それはするRewriteRule

^(.*)$ http://www.mysite.com/$1 [R=permanent,L]

なく

$1 [R=permanent,L]です。

あなたは.com$1 [R=permanent,L]でphp.iniのを追加し、mysite.com/index.php?id=934をしようとした場合、それはmysite.comindex.php /?id934

関連する問題