2018.05.07WEB - PHP WordPress

WordPressで、特定のカテゴリやページにベーシック認証をかける

ディレクトリが実在しないからかけられない…と思いがちですが、ディレクトリなら切ってしまえばいい。

 

コピーした index.php と .htaccess 、作成する .htpasswd の実際の内容を書いていきます。

index.phpの書き換え該当箇所

require( dirname( __FILE__ ) . '/wp-blog-header.php' );

のパスを

require( dirname( __FILE__ ) . '/../wp-blog-header.php' );

等、適宜変更

.htaccessの追記内容

AuthType Basic
AuthName "Input your ID and Password."
AuthUserFile フルパスとかけたいディレクトリ.htpasswd
require valid-user

「フルパスとかけたいディレクトリ.htpasswd」の例:/home/users/ドメイン/memo/.htpasswd
フルパスは

<?php echo dirname(__FILE__); ?>

で取得できる。

.htpasswdの内容

IDと暗号化されたパスワードを:でつないで書くだけ。
ここで作成すると楽。
LUFTTOOLS .htpasswd ファイル作成

リダイレクトループが発生する場合は functions.php へ

remove_filter('template_redirect', 'redirect_canonical');

を追記。