4

私のプロジェクトは、この 1 つの問題にかかっています。

フラットURLシステムを実装するために、htaccessにこのコードがあります

Options +FollowSymlinks
RewriteEngine on
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/page.php
RewriteRule (.*) page.php?pid=$1 [QSA]

このコードが存在する間、あるページで作成されたセッション変数に他のページでアクセスできません。ページがリダイレクトを通過しない静的な .php ページであっても、セッションは消えます。このコードのみが何らかの形でセッションを妨げます。

レルムが正しいことを確認するためにセッション Cookie パスとドメインを設定しましたが、機能しません。

どんな助けでも心から感謝します。

面白いことに、Chrome でしか失敗しません。

4

3 に答える 3

0

各ページでセッションを開始しましたか。

session_start(); と書く必要があります。関数は、php の直後のファイルの先頭にあります。

セッションがアクティブになるまでセッション変数が生きているため、htaccessファイルはセッションで何の役割も果たしません。

于 2013-01-23T11:21:38.367 に答える
0

Chrome で動作しない場合は、Chrome のせいです... ブラウザは、サーバー側で実行されているか、.htaccessまたはSESSIONサーバー側で実行されているため、何もできません。Chrome を介して他のコンピューターからチェックアウトする必要があります。動作している場合は、まさにあなたの Chrome のせいです。

于 2012-10-02T08:52:23.963 に答える
0

あなたのコメントごと:

セッション Cookie が正しいパスとドメインにあることを確認するために、この追加コードを設定しました。ini_set('session.cookie_domain', '.bostonairporttaxicab.com'); ini_set('session.cookie_path', 'bostonairporttaxicab.com/';);

あなたの cookie_path が間違っていると思います。パスはドメイン名に続く部分であるため、ドメイン名を含めないでください。に設定してみて/、問題が解決するかどうかを確認してください。おそらく、Chrome は他のブラウザとは異なる解釈をしているため、セッション Cookie を拒否しています。

于 2012-09-30T02:48:21.313 に答える