I log …

WordPressで特定のディレクトリにベーシック認証をかける

目次

  1. 下階層にベーシック認証

下階層にベーシック認証

 WordPress関係なく特定のディレクトリにベーシック認証をかけたい場合、対象のディレクトリに.htaccessと.htpasswdを置く! という記事が大量にでてきます。

 でもそれだけだと、WordPressでは404エラーになってしまいます。
 例えば、カスタム投稿「secret」のアーカイブと詳細ページにベーシック認証をかけたいので/secretディレクトリを作成して.htaccessをおくと、ディレクトリが存在するために/secret/index.htmlや/secret/index.phpを探しにいってしまうからです。
 ということは、/secret/index.phpがあれば404にはなりません。
 /secretディレクトリを作成し、.htaccess、.htpasswd、そして下記のindex.phpを置きます。

 こちら、見覚えあるかと思います。rootにあるindex.phpの相対パスを変更しただけのファイルです。
 rootにある.htaccessだけでどうにかしようと思って、正規表現などにかなり悩んだのですが、思いついてみればあっさりしたものでした。