WordPressのマルチサイト(Multisite)ネットワーク設定では、管理者はサブサイトのログイン失敗問題に直面する可能性があり、特に主サイトとサブサイトが異なるドメインを使用している場合にはこの問題が発生しやすくなります。この記事では、この問題を解決し、サブサイトへの正常なアクセスとログインを確保する方法について説明します。
問題の説明
典型的なWordPressマルチサイトネットワークでは、主サイトとサブサイトは同じトップレベルドメインを共有する可能性がありますが、異なるドメインを使用する必要がある場合もあります。例えば、ネットワークの構造は以下のようになります:
- example.com(主サイト)
- sub.example.com(サブサイト)
- example.net(サブサイト)
この構造で、example.net
にアクセスまたはログインしようとすると、「Cookieがブロックされているか、使用しているブラウザはサポートしていません」というエラーが表示される可能性があります。ただし、example.com
からsub.example.com
に切り替えると、この問題は発生しません。
解決策
wp-config.php
ファイルを更新する:wp-config.php
ファイルに以下のコードを追加して、Cookiesが異なるサブドメイン間で正しく動作するようにします:
define('COOKIE_DOMAIN', $_SERVER['HTTP_HOST']);
これにより、どのサイトにアクセスしても、WordPressはブラウザーに適切なCookiesを設定します。
- ブラウザのCookiesとキャッシュをクリアする:
設定を変更した後、ブラウザのCookiesとキャッシュをクリアし、再度ログインを試みます。 - プラグインを使用する:
WP Multisite SSOなどのプラグインは、異なるドメイン間でのシングルサインオン問題を解決するのに役立ちます。私たちは個人的に試していないため、推薦はできませんが、この問題を解決する選択肢として利用できるかもしれません。
COOKIE_DOMAIN
を理解する
COOKIE_DOMAIN
定数は、WordPressにCookiesをどのように設定するかを伝えます。ログインすると、WordPressはブラウザにcookieを設定して、認証済みであることを示します。COOKIE_DOMAIN
は、このcookieのスコープを設定し、ブラウザはそのスコープに一致するサイトに対してのみcookieを送信します。たとえば、example.com
にログインすると、このcookieのスコープはexample.com
に設定され、このドメインまたはそのサブドメインにアクセスするときにのみ、ブラウザはこのcookieを送信します。
追加リソース
上記の手順を通じて、WordPressマルチサイトネットワークでのサブサイトログイン失敗問題を解決し、特に異なるドメインを使用している場合には、正常なアクセスとログインを確保できるでしょう。