1

問題

私のドメインはwww.example.comです。ユーザーがログインしてからタブを閉じ、後でタブを開いてwww.example.comに移動すると、セッションはユーザーがログインした状態で完全に正常に続行されます。

ただし、example.comと入力すると( www.なしで)、ログアウトしたように見え、配置してprint_r($_SESSION)も何も表示されません。ただし、ページ上のリンクをクリックすると (ユーザーをwww.example.com/linkにリダイレクトします)、セッションが復元されます。

そのため、 example.comに末尾のwwwを付けずに入力すると、ユーザーログアウトしているように見えることに気付きました。これは、多くのユーザー (私のような) が定期的に行っていることです。

質問

これを修正するには、次の 2 つの方法があります。

  • を任意の URL サブドメインに適用できる方法を見つけます$_SESSION(またはその欠如)。
  • example.comと入力したユーザーをwww.example.comにリダイレクトします

これらのいずれかが実行可能であり、実行可能である場合、ベスト プラクティスはどれですか?

4

1 に答える 1

0

セッション Cookie が設定されると、現在のドメインが使用されます。ただし、代わりにこの Cookie でワイルドカード ドメイン「*.example.com」を許可するように構成できます。そうすれば、セッションはどちらの URL でも続行されます。ワイルドカード ドメイン Cookie は、「example.com」の任意のサブドメイン (他のサーバーで作成したサブドメインであっても) に送信されるため、少し安全ではないことに注意してください。これは問題ではないかもしれませんが、言及する必要があります。

しかし、本当の解決策は、指定されたドメインを 1 つだけ使用することです。永続的なリダイレクト コードを使用して、ユーザーをこの 1 つのドメインにリダイレクトします。これにより、検索エンジンの重複コンテンツの問題も回避されます (これはペナルティではなく、「2 つの URL のどちらを検索結果として表示するか」という問題です)。

于 2013-08-29T18:39:37.207 に答える