WordPressの記事およびメディアファイルにベーシック認証

この記事では以下の4点について書いています。

まずは.htpasswdを作っておきます。
「ベーシック認証 パスワード暗号化」などで検索すると、パスワードを暗号化してくれるサイトが見つかりますのでそこで変換しておきましょう。
試しに「test:test」で変換をかけると「test:j4OUQayJTwkZE」の様に暗号化してくれました。

構築中のWordPressサイト全体にベーシック認証

WordPressの直下にある.htaccessに記入します。

AuthUserFile /xxx/xxx/xxx/.htpasswd
AuthType Basic
AuthName "Web access"
Require valid-user
Satisfy all
Order deny,allow

2行目の「AuthUserFile」は.htpasswdが置いてある場所へのフルパスです。
レンタルサーバーなら管理画面などで確認できます。もしくはphpで調べられます。
「php フルパス 取得」などで検索するとやり方が出てきます。

ログイン画面だけにベーシック認証

公開後はログイン画面だけにベーシック認証を設定すればセキュリティ面で良いですね。

<Files wp-login.php>
AuthUserFile /xxx/xxx/xxx/.htpasswd
AuthType Basic
AuthName "Web access Aadministrator Only"
Require valid-user
Satisfy all
Order deny,allow
</Files>

1行目と8行目にある<Files wp-login.php></Files>で囲ってどのファイルに当てるのか指定してやります。

サイト公開後、特定のカテゴリーやタームにベーシック認証

タームに紐づける例を書きます。

認証を設定する記事の準備

  1. カスタム投稿タイプでタクソノミー「認証(tax_basic)」を登録。
    (階層化を「true」にしておけば記事の編集画面でチェックボックスが使えます)
  2. そこにターム「ベーシック認証(secret)」を登録。
  3. 記事の編集画面で「ベーシック認証」にチェックを付ける

ベーシック認証の設置

ここまで書いて「あ、この記事書いたわ」と思い出しました。
こちらをお読み下さい→「WordPressで分類別にベーシック認証
記憶力がヤバい。

特定のメディアファイルにベーシック認証

ページ単位でベーシック認証をかけられる↑上の設定と同じ感じで使えるメディアファイルに対してのベーシック認証は出来ないか考えましたが出来なかったのであきらめてこうしました。

プラグインを使って認証を付けたいファイルをアップする度にアップロード先を変更し、そのアップロード先フォルダに対してベーシック認証をかけておく。

面倒ですがこれが一番簡単かなという事で実施。

  1. プラグイン「Custom Upload Dir」を新規追加し有効化。
  2. FTPでサーバー側の「wp-content/upload/」内にベーシック認証の対象となるフォルダ「file_basic」を作成。(名前は何でもいいです)
  3. 「wp-content/upload/file_basic」にWordPress直下のindex.phpと.htaccessをコピー
  4. index.phpを開いて以下を編集
    require( dirname( __FILE__ ) . '/wp-blog-header.php' );

    ↑これを↓これに変更

    require( dirname( __FILE__ ) . '/../../../wp-blog-header.php' );
  5. 「.htaccess」を開いて以下追記
    AuthUserFile /xxx/xxx/xxx/.htpasswd
    AuthType Basic
    AuthName "Web access"
    Require valid-user
    Satisfy all
    Order deny,allow

    ※xxxは.htpasswdへのフルパス

  6. 「.htpasswd」を作って.htaccessファイルで指定した場所にアップロード
    この時点でフォルダにtest.html等のファイルをアップロードし、ベーシック認証が有効になったか確認しておきましょう。
  7. 「設定>Customize Upload Dir」を開き
    ・「Build a path template:」に「/file_basic」と記入
    ・「Organize my uploads into month- and year-based folders」のチェックを外す
    ・「Update Settings」をクリック
  8. メディアにファイルをアップロードし、ベーシック認証が効いているか確認。
  9. プラグインの設定を元に戻す。
    「設定>Customize Upload Dir」を開き
    ・「Build a path template:」の「/file_basic」を削除
    ・「Organize my uploads into month- and year-based folders」にチェックを付ける
    ・「Update Settings」をクリック
    ※「Build a path template:」に「/%year%/%monthnum%」と入っている事を確認
    (年月フォルダに分ける設定をしている場合)

以上で画像やファイルにベーシック認証がかけられます。

WordPressの記事およびメディアファイルにベーシック認証” への 1 件のコメント

この記事にコメントを残す