
こんにちは。管理人のけーちゃんです。
mixhostはアズポケット株式会社が運営するレンタルサーバーです。
mixhostのcPanelを利用すると、ベーシック認証という仕組みを利用してWebサイトにパスワードをかけることができます。
Webサイトは不特定多数のユーザーが閲覧することを前提として作成されるのが一般的ですが、場合によっては閲覧者を限定したいケースがあります。
例えば、作成中で中途半端なサイトをGoogleにインデックスさせたくないときや、自分向けサイトを外部公開したくないときなどです。
このようなケースで、ベーシック認証を使用するとパスワードを知っているユーザーだけがサイトを閲覧できるようになります。
そこで今回は、mixhostでベーシック認証を設定する方法をお伝えします。
\目次も見てね!/
ベーシック認証とは
ベーシック認証とは、Webページにパスワードをかけて閲覧を制限する方法の一つです。パスワードをかける方法はいくつかありますが、ベーシック認証は主に.htaccessファイルに必要な情報を書き込んで設定します。
書き込む内容は定型のものをコピペするだけでよいため、手軽に設定できます。パスワードを知っている閲覧者限定でサイトを公開したいときは、もっとも簡単な方法です。

今回はもっと手軽ですよ
mixhostは、ベーシック認証の設定画面が用意されているので、.htaccessファイルを書き換える必要がありません。そのため、さらに簡単にパスワードによる閲覧制限を実現できます。
ベーシック認証が設定されたWebページにブラウザでアクセスすると、次のようなログイン画面が表示されます。

この画面はブラウザ毎に異なりますが、ユーザー名とパスワード入力欄は共通です。ユーザー名とパスワード入力してログインを押すと、Webページが表示されます。
ただし、ベーシック認証のログインとWordPressのログインは異なる仕組みで動作しているので、ベーシック認証でのログイン後に、WordPressのログイン画面が表示されます。

ログインが2回必要なので、記事投稿するときは少し面倒に感じるかもしれませんね
cPanelでのベーシック認証設定
mixhostでのベーシック認証はcPanelの「ディレクトリのプライバシー」で設定します。
ドキュメントルートの確認
事前準備として、サイトのドキュメントルートを確認する必要があります。次の手順で確認してください。
- mixhostのcPanelにログインする
- ドメインタブ内の「ドメイン」をクリックする
- ドメイン一覧から目的のドメインを探して『管理』ボタンを押す
- 画面右端のドメイン情報欄にある『ドキュメントルート』を確認する
mixhost契約時に取得したドメイン(プライマリドメイン)は『/public_html』がドキュメントルートになります。
二つ目以降のドメインは、『/public_html』の下層にドキュメントルートが設置されます。
ベーシック認証設定
ドキュメントルート確認ができたら、次の手順でベーシック認証を設定します。
②はドキュメントルート以外のディレクトリも選択できます。ここで選択したディレクトリの下層ディレクトリもベーシック認証の対象となります。下層ディレクトリのベーシック認証を無効にすることも可能です。
③の保護ディレクトリの名前はそのままで問題ありません。画面上に「保護ディレクトリの名称も表示」と記載されていますが、表示されるかどうかはブラウザ側の仕様によります。内容を変更するときは半角文字のみ使用可能です。
⑤のユーザー名とパスワードは、入力基準に従う必要があります。入力基準は入力欄に文字を入力すると確認できます。また設定したパスワードは後で確認できません。パスワードを忘れた場合は、同画面(ディレクトリのプライバシー)の下方に表示されているユーザ一覧でユーザーを削除後に再設定してください。
以上の設定で、Webページをブラウザで表示すると認証画面が表示されます。
mixhostのベーシック認証問題
下層ディレクトリのベーシック認証について、mixhostには大きな問題があります。
mixhostはプライマリドメインのディレクトリ(/public_html)の下層に二つ目以降のドメインが配置されます。そのため、プライマリドメインにベーシック認証を設定すると、他の全てのドメインにベーシック認証が適用されます。そのため、基本的にはプライマリドメインのベーシック認証設定は避けた方がよいです。
ですが、次項の方法で下層ドメインのベーシック認証を無効化できます。
下層ディレクトリのベーシック認証無効化
ベーシック認証を設定したWebサイトで一部のディレクトリだけ認証を無効化したいケースがあります。例えば、ダウンロード用のディレクトリを認証無しにして自由に資料をダウンロードできるようにするなどです。

WordPressの一部の記事だけを認証無しにするのは無理です。
また前項(mixhostのベーシック認証問題)で解説した、プライマリドメインのベーシック認証設定に関する問題もあります。
下層ディレクトリのベーシック認証無効化はcPanelの機能で用意されていないので、 .htaccessファイルを編集する必要があります。ファイルマネージャー等を使用して .htaccessファイルに次のコードを記述してください。
Satisfy Any
order allow,deny
Allow from all
.htaccessファイルが存在しないときは、新規で作成してください。
ファイルマネージャの使い方は、次のリンク先の「mixhostのファイルマネージャーの使い方」で紹介しています。ぜひ参考にしてください。
WP Toolkitでのベーシック認証設定
mixhostのプレミアムプラン以上で使用できるWP Toolkitは、ベーシック認証をサイト単位で設定できます。
- cPanelからWP Toolkitを開く
- ベーシック認証を設定したいサイトの左端をクリックして詳細を開く
- ツール欄の『パスワード保護』をクリックして有効化する
- ユーザ名とパスワードを入力する画面が表示されるので、入力して『保護』を押す
これでサイトにベーシック認証をかけることができます。
.htaccessでのベーシック認証設定
このからは少し蛇足ですが、mixhostのcPanelでベーシック認証設定を行ったとき、内部ではどのような変化があるのかを確認します。

他のサーバーでも同じことをすれば、ベーシック認証をかけることができますよ
ベーシック認証設定をおこなったディレクトリの .htaccess に、次のようなコードが追加されます。
※.htaccessが存在しないときは新規作成されます。
#----------------------------------------------------------------cp:ppd
# Section managed by cPanel: Password Protected Directories -cp:ppd
# - Do not edit this section of the htaccess file! -cp:ppd
#----------------------------------------------------------------cp:ppd
AuthType Basic
AuthName "Protected 'public_html/wp-kc-mixh'"
AuthUserFile "/home/xxxxx/.htpasswds/public_html/wp-kc-mixh/passwd"
Require valid-user
#----------------------------------------------------------------cp:ppd
# End section managed by cPanel: Password Protected Directories -cp:ppd
#----------------------------------------------------------------cp:ppd
#はコメントなので、ここでは4つのディレクティブ(命令)が記述されています。
ディレクティブ | 内容 |
---|---|
AuthType | ディレクトリのユーザー認証タイプを指定する。 認証タイプはNone、Basic、Digest、Formがある。 今回はベーシック認証なので『Basic』を指定する。 |
AuthName | ディレクトリの認証領域の名前を指定する。 この名前はブラウザに送信される。 ログイン画面に表示されるかどうかはブラウザ側の仕様による。 |
AuthUserFile | ユーザー名とパスワードが保存されているファイルをサーバー上のパスで指定する。 |
Require | ディレクトリにアクセス可能なユーザーを指定する。 『valid-user』は全てのユーザーがアクセス可能。 他に『ip xx.xx.xx.xx』指定したIPアドレスのユーザーがアクセス可能、等がある。 |
AuthUserFileで指定されているファイルは、mixhostでは .htpasswdsフォルダ内のpublic_htmlに保存されます。
ドキュメントルートのpublic_htmlではないので注意してください。
ファイルの配置は、mixhost独自のものです。他のサーバーでは異なる配置になる可能性があります。また、mixhostでのファイル名は『passwd』ですが、通常は『.htpasswd』が使用される点が大きく異なります。
passwdファイルは次のような文字列が記述されています。
taro:$apr1$ecBQys1h$GeYcb8iZSLwEuMVOIENRY/
hanako:$apr1$KrCzGyMH$uEFvL0synRCZYPuHZFodE0
「taro」と「hanako」はユーザー名です。『:』の後に続く文字列はパスワードをハッシュ化したものです。

ハッシュ化とは不可逆な暗号化です。
通常の暗号化は元に戻せますが、ハッシュは元に戻せません。
このファイルにユーザー名とパスワードを追加すると、今回紹介した方法を使用しなくてもユーザーを追加できます。
パスワードのハッシュ化はWebツールとして様々なサイトが公開しています。『htpasswd生成ツール』で検索してください。
まとめ
ここではmixhostでWebサイトや下層ディレクトリにベーシック認証を設定する方法をお伝えしました。
mixhostはcPanelの「ディレクトリのプライバシー」でベーシック認証を設定できます。ベーシック認証を設定してブラウザでWebサイトにアクセスすると、ユーザー名とパスワードを入力する画面が表示されます。これにより、パスワードを知っているユーザだけが、Webサイトを閲覧できます。
自分だけが閲覧可能なメモサイトを作成するときなどに利用できそうですが、設定ミス等で公開されてしまう可能性があるので、クレジットカード番号や暗証番号など重要な情報を掲載するのは絶対やめましょう。