WordPress にBASIC認証かける+パスワード保護は大丈夫

以前書いた記事に WordPressのログイン画面(wp-login.php)にBASIC認証を掛けるというものがありました。

その中に記述しているコードでBASIC認証を掛けると

「パスワード保護」している記事のパスワード入力時

にもBASIC認証がかかってしまいました。

確認不足ですみません。

※現在そちらの記事も修正済みです。

パスワード保護している記事に影響しないBASIC認証を掛ける

パスワード保護時のクエリを避けてあげるようにBASIC認証を掛けるようにします。

※ サーバーは Apache 2.4用だと思いますが、ロリポップのハイスピードプラン LiteSpeed でも エックスサーバー x10(たしかnginx+なにか)でも動作しました。

こんな感じです。

AuthUserFile については環境に合わせてください。

<Files wp-login.php>
<If "%{QUERY_STRING} != 'action=postpass'">
    AuthUserFile "/home/{ユーザ}/{ドメイン}/{あとは合わせて}/.htpasswd"
    AuthGroupFile /dev/null
    AuthName 'Member Only.'
    AuthType Basic
    Require valid-user
</If>
</Files>

こちらで出来なかった!場合がありましたので… こちらではどうでしょうか。

<Files wp-login.php>
AuthUserFile "/home/{ユーザ}/{ドメイン}/{あとは合わせて}/.htpasswd"
AuthName 'Member Only.'
AuthType BASIC
<RequireAny>
  Require valid-user
  <RequireAll>
    Require expr %{QUERY_STRING} = 'action=postpass'
    Require env internal_site
    Require method POST
  </RequireAll>
</RequireAny>
</Files>

実際に 前述のものはエックスサーバーでは動作していたんですが、ロリポップで動作しませんでしたので後述のもので対応しました。

どうぞよろしくお願いいたします。

パスワード保護している記事がなければ大丈夫です

実は、こちらの記事をシェアしようとして気が付きました。

こちらの記事は現在準備中のため非公開としている

Stripe Payment (Stripe決済ボタンを追加するプラグイン)

のマニュアルになるんですが、実は案件単位では提供しておりまして、マニュアルを自分で読もうと思ったときに発覚しました。

今まで見るに見られなかった方、大変申し訳ありません。

※ご購入者のみ「パスワード」を配布しております。

こちらのプラグインについても現在バージョンアップ中です。

どうぞよろしくお願いいたします。

この記事が気に入ったら
いいね ! しよう

Twitter で