マルチサイトの子サイトだけにBasic認証をかける
目次
今回やりたいこと
WordPressでマルチサイトを構築している場合、特定の子サイト(URL)だけにベーシック認証をかけるにはどうしたら良いのか。
意外と単純な方法で解決したので備忘録として残しておきます。
手順
例えば、URLを「~/sample」と指定している子サイトだけにベーシック認証をかけたいとします。
通常通りサーバーのルートに置いてある.htaccessにベーシック認証の記載をしてしまうと、そのWordPressサイトすべてのサイト(親サイトも子サイトも)にベーシック認証がかけられてしまいますよね。
今回は、子サイトを順番に作って公開していくシチュエーションだったので、開発段階の子サイトが存在したため、念のためアクセスできないようにベーシック認証をかけました。
①フォルダを作成
「~/sample」というURLの子サイトにベーシック認証をかけたいので、サーバーのルートに「sample」フォルダを作成します。
②必要ファイルを設置
いつも通り、「.htaccess」と「.htpasswd」ファイルを設置します。
ここがポイントなのですが、もう一つ必要なファイルがあります。それがルートに置いてある「index.php」!これをコピーして「sample」フォルダに入れます。
③index.phpの編集
ルートに置いてあったindex.phpなので、当然パスを合わせる必要があります。「wp」フォルダを読み込ませるパスが変わるので「../」を追加します。
require( dirname( __FILE__ ) . '/../wp/wp-blog-header.php' );
これで「~/sample」の子サイトだけにベーシック認証をかけることができました。
参考にさせていただいた記事
今回参考にさせていただいた記事はこちらです。ありがとうございました。