2011-02-08 6 views
0

URLの書き換え後にクッキーを設定して取得すると、私は奇妙なバグを起こしています。これは私が使用する書き換えルールです:

RewriteRule ^([A-Za-z0-9]+)/([A-Za-z0-9]+)$ /$1/$2/ [R] 
RewriteRule ^([A-Za-z0-9]+)/([A-Za-z0-9]+)/$ /index.php?destination=$1&command=$2 

そして、これは私がクッキーを印刷するために行うものです。

var_dump($_COOKIE); 

私はまた、適切なクッキーを設定し、ログイン、および有効期限が切れるログオフを持っていますクッキー。

ログイン:setcookie("USERNAME", "usernamestring", time()+3600);

ログオフ:setcookie("USERNAME", "0", time()-3600);

私はwww.remoteaccessnow.comにアクセスすると、クッキーがnullです。 www.remoteaccessnow.com/accounts/にアクセスすると、クッキーはnullではありません。

これは、同じセッション中に実行されます。バグはchrome 9、firefox 3+、IE8で発生します。

書き換えルールをまったく使用しない場合、問題はなく、Cookieは「サブURL」全体で一貫しています。私はこの問題の原因を知りません。 www.remoteaccessnow.comとwww.remoteaccessnow.com/accounts/は「クッキープロセッサー」によって2つの異なるドメインとみなされているようです。

私は、ドメインのすべてのサブURLに対して一貫性のあるCookieを維持する方法についてアドバイスを探しています。

答えて

2

Cookieの第4パラメータを'/'に設定すると、ドメインのすべてのディレクトリでアクセスできるようになります。

setcookie("USERNAME", "usernamestring", time()+3600,'/'); 

'/' に設定すると、クッキーは、ドメイン全体の中 利用できるようになります。 が '/ foo /'に設定されている場合、/ foo/ ディレクトリ内のCookieは 、ドメインの/ foo/bar /というサブディレクトリはすべて となります。デフォルト 値はクッキーがセットされたときの カレントディレクトリです。

詳細 http://php.net/manual/en/function.setcookie.php

を参照します
関連する問題