マルチサイトの子サイトだけに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」の子サイトだけにベーシック認証をかけることができました。

参考にさせていただいた記事

今回参考にさせていただいた記事はこちらです。ありがとうございました。

related article

2019/10/16 WordPress

まだ記事のないカテゴリを出力する

2021/02/26 WordPress

デフォルトの「投稿」のURLをカスタマイズする

2019/10/28 WordPress

404エラーの時にトップにリダイレクトさせる

2019/11/04 WordPress

WordPressのコンタクトフォームから送信できない