1

ログインデータを保存するためにセッション変数を使用しています。ローカルでは、すべてがスムーズに機能し、適切にログインし、ページ間でログアウトしません。

しかし、同じファイルをサーバーに置くと、何らかの理由でログアウトされます。私はすでにこの投稿を見つけており、次のコードを使用して動的ページのキャッシュを防止しようとしました:

header("Cache-Control: no-cache, must-revalidate"); 
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past

それはうまくいかないようですが。この問題に対する他の解決策はありますか?

編集:すべてのページにあることに注意しsession_start()てください。

編集 2:もう少し調査を行ったところ、リンクの一部が にリンクしwww.mysite.comているようmysite.comです。この新しいページに移動すると、$_SESSION[]vars が設定されていないことがわかります。戻るボタンで前のページに戻ると、$_SESSION[]まだ設定されていることがわかります。

4

1 に答える 1

3

セッションは Cookie を使用するため、ドメインを変更すると (www.site.com から site.com)、それらの Cookie は送信されません。

1 つの正規 URL を持つように Web サーバーをセットアップし、全員をその URL にリダイレクトします (たとえば、site.com で標準化し、www.site.com を site.com にリダイレクトします)。

これは、Apache でリダイレクトを処理する方法です。

ServerAlias www.site.com my.site.com site.net www.site.net sites.com www.sites.com site.com
RewriteEngine On
RewriteCond %{SERVER_NAME} !=site.com
RewriteRule ^(.*) https://site.com/$1 [R=301]

私は www.site.com よりも site.com を好みます。ただし、2 つのサイトで何か違うことをしている場合を除いて、ユーザーに余分な 4 文字を入力させるのは無意味に思えます。SEO についての私の (不十分な) 理解では、2 つの URL (site.com/stuff と www.site.com/stuff) でコンテンツが重複するよりも、1 つを選択した方がよいということです。

于 2013-05-18T14:21:28.583 に答える