※当サイトにはプロモーションが含まれています。
パスワードをかけて、知っている人だけが見られるサイトを作りたいにゃ
簡易的な会員サイトや購入者向けページなど、パスワードでアクセス制限をかけたい事があると思います。
ページごとにパスワードをかける機能は、ワードプレスの基本機能に用意されていますが、サイト全体となるとプラグインを使う必要があるのですが、設定が煩雑であったり、有料だったりします。
その為、プラグインを使わずに、「ベーシック認証(BASIC認証)」使って、ユーザー名やパスワードを入力することで、サイト全体を見ることができるようにする方法を紹介したいと思います。
※なお、この方法で設置すると、ワードプレスの管理画面に入る時も、ベーシック認証を求められるのでご注意ください。
「.htpasswd」の作成
プラグインを使わずにBASIC認証をかけるには、以下の2つファイルが必要です。
- .htpasswd
- .htaccess
まず、「.htpasswd」というファイルを作成します。
このファイルは、BASIC認証に必要なユーザー名とパスワードを設定するためのファイルになります。
設定するには、ユーザー名とパスワードを暗号化する必要があります。
その為、パスワード暗号化ツールなどを使用して暗号化します。
①パスワード暗号化ツールに移動
パスワード暗号化ツールに移動します。
②パスワードを生成する
ご自身で決めた、IDとパスワードを入力して「生成」ボタンを押します。
すると、下方に暗号化された文字列が生成されるので、それをコピーします。
③「.htpasswd」の保存
なお、.(ドット)が先頭に着いているファイル名は「隠しファイル」と呼ばれていて、ローカル環境(デスクトップ上)では保存できない可能性があります。
その場合、一旦、先頭の.(ドット)はなくして、htpasswd.txtの名称にして、テキストファイルとして保存しましょう。
「.htpasswd」の設置
FTPソフトを使用して、サーバー上に「.htpasswd」を設置します。
多くの場合、下記のような構成でワードプレスがインストールされていると思います。
/home/(ユーザ名)/public_html/(WordPressがインストールされているディレクトリ)
/home/(ユーザ名)/www/(WordPressがインストールされているディレクトリ)
/home/(ユーザ名)/htdocs/(WordPressがインストールされているディレクトリ)
「.htpasswd」は、ワードプレスがインストールされているディレクトリより上の階層に設置します。
①FTPソフトを使用してサーバーにログイン
FTPソフトを使用してサーバーにログインします。
②「.htpasswd」の設置
/home/(ユーザ名)まで移動します。
そのまま、「.htpasswd」を設置してもいいのですが、今回は「psword」フォルダを作成しました。
「psword」フォルダ内に、「.htpasswd」をアップロードします。
※ローカル環境上で、隠しファイルとして保存できなかった場合は、サーバーにアップロードした後に「.htpasswd」とファイル名を変更してください。
念の為、サイトにアクセスできるかを確認しておきましょう。
この時点では、認証ファイルを置いただけなので、サイトにアクセスできます。
「.htaccess」の修正
FTPソフトを使用して、サーバー上に「.htaccess」を修正します。
①「wp-admin」ディレクトリへ移動
WordPressがインストールされているディレクトリに移動します。
「.htaccess」ファイルがあるので、このファイルをドラッグ&ドロップでダウンロードします。
念の為、ダウンロードしたオリジナルファイルは、コピーして保存しておきましょう。
②「.htaccess」ファイルの編集
ダウンロードした「.htaccess」を編集します。
下記の内容を「.htaccess」の冒頭に記載します。
AuthType Basic
AuthName "Input your ID and Password."
AuthUserFile /home/(ユーザ名)/psword/.htpasswd
require valid-user
AuthUserFileというのが、暗号化したパスワードファイルの場所を指定しているので、「.htpasswd」を置いた場所を記載します。
ちなみに記載すると、このようになります。
③編集した「.htaccess」ファイルをアップロード
編集した「.htaccess」ファイルをアップロードして上書きします。
これで、ベーシック認証の設置が完了しました。
なお、ワードプレスという前提で説明しましたが、ワードプレス以外のサイトでも設置可能です。
ポイントは、「.htaccess」を設置した箇所に、ベーシック認証がかかるということになります。
お疲れ様でした。