そのため、ユーザーがログインする必要があるサイトを作成しています。ユーザーが自分のログイン情報をサイトに記憶させたい場合は、このデータを記憶するために Cookie を設定します。ただし、Cookie はサイト www.mysite.com に設定されているようです。これは、アドレス mysite.com (www. なし) で自分のサイトにアクセスすると、Cookie にアクセスできなくなることを意味しているようです。どちらかのサイトに設定された Cookie が両方のサイトからアクセスできるようにするにはどうすればよいですか?
3 に答える
ブライアン・スコットはすでに質問に適切に答えていますが、私はこれを追加すると思いました:
私の意見では、ユーザーがログインを「記憶」できるようにする場合は、安全な接続の維持を含め、どのように/どこで/なぜ/いつ、特定の制御を維持する必要があります。
あらゆる種類のログインを含む私のプロジェクトでは、適切な SSL 証明書と安全な接続があることを常に確認してから、サイトへのアクセスに使用している URL をチェックし、リダイレクトして、安全なドメイン内にとどまっていることを確認します。たとえば、www をチェックします。および https プレフィックスを使用し、常にhttps://www.domain.comにリダイレクトします... わずか 2 セントです。
編集:コメントに応じて。大雑把ですが、こんな感じです。
if (($_SERVER['SERVER_PORT'] != '443') || ($_SERVER['HTTPS'] != 'on') || (!strstr ($_SERVER['HTTP_HOST'], 'www'))) {
header ("Location: https://www.mydomain.com");
exit();
}
2 番目の編集:大まかに入力したコードに 2 つのエラーがあります。
www.mysite.comの代わりに.mysite.comの Cookie を設定します。そうすれば、Cookie は共通のドメイン サフィックスを認識し、両方の URL と互換性があります。
両方を使用する必要はありません。どちらかを選択してください。SEO にも適しています。個人的には、htaccess を介して www にリダイレクトし、標準のままにします。
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]