サイトにパスワード制限をかける方法で一番てっとり早い方法といえばBasic認証をかける事です。
Basic認証は実サイトに実装することより、Googleにインデックスされないので、テスト環境の構築の際はよく使います。
今回はWordPressで公開されたサイトで一部固定ページのみBasic認証をかけたいという要望があったので、そちらの対応策を備忘録。
サイト全体にBasic認証をかける場合は下記のファイルがあればOKです。
「.htpassword」…パスワードを格納しているファイル
「.htaccess」…htpasswordを読み込むファイル
※htpasswordの中のパスワードの記述はこちらのサイトなどで暗号化しておきます。
htpasswordの記述は非常にシンプル
IDが「admin」PWが「test」の場合
1 | admin:test |
これが暗号かけるとこうなる
1 | admin:ngMeDQ7DUorco |
ファイル名は前に「.」をつけて「.htpassword」とします。
前に「.(ドット)」をつけることによって不可視ファイルとなります。
デスクトップに保存したはずなのに、「.htpassword」が表示されないって場合は不可視ファイルを表示させる必要があります。
Macで不可視ファイルを表示させる方法はアプリケーション→ユーティリティー→ターミナルを開いて以下の記述を入力してリターン。
1 | $ defaults write com.apple.finder AppleShowAllFiles TRUE |
不可視ファイル見せたくなくなったら下記のコードをターミナルに入力してリターン。
1 | $ killall Finder |
「.htpassword」と同じようにファイル名の一番前に「.htaccess」とします。
htaccessの内容は以下
1 | AuthUserFile “サーバーのフルパス/.htpasswd" |
2 | AuthName “Basic Site" |
3 | AuthType BASIC |
4 | require valid-user |
サーバーのフルパスがわからない場合はレンサバのコンパネで調べるか、以下のPHP書いたファイルをサーバーのディレクトリにアップしてURLをたたく。
1 | <?php |
2 | phpinfo(); |
3 | ?> |
※上記コードを書いたPHPファイル(php_info.phpとかで)をサーバーにアップ。
例えば、仮に「https://webkcampus.com/service」っていう固定ページにかけたい場合。
(1)サイトURL(WordPressの入っているフォルダ)の直下に「service」というフォルダを作成
(2)「service」内にURL直下の「.htaccess」と「index.php」をコピーする
(3)index.phpのファイルを編集
1 | require ( dirname( __FILE__ ) . ‘/../wp-blog-header.php' ); |
(4)あとは、先に書いたBasic認証のかけ方と同じように「.htpassword」を「service」内に入れて、「.htaccess」を編集してOK