WordPressサイトにアクセス制限をかけたいことってありますよね。
会員限定サイトなどの運営時や、セキュリティの面からもサイトにアクセス制限をかけたりします。最もメジャーな手段が「BASIC認証」と呼ばれる認証方法です。
プラグインを使って設定したり、一般的なサーバーなら管理画面からでも設定できますが、当記事では手動でファイルを作成・編集してBASIC認証をかける方法を一から解説いたします。
BASIC認証とは
IDやパスワードを入力しなければ、サイトやページを閲覧できない以下のようなアクセス制限のことです。
弊社でも商品(TCDテーマ)のマニュアルサイトにBASIC認証をかけています。ご購入者様のみが閲覧できるようになっているからです。
なお、BASIC認証をかけたサイトやページは検索結果にインデックスされないので注意しましょう。
特定のユーザーのみが閲覧できればいいサイトや社内マニュアルなど、基本的には閲覧者が限定されていて検索結果に表示する必要のないサイトにBASIC認証をかけます。
ファイルを作成・編集してBASIC認証をかける方法
プラグインを使わずにBASIC認証をかけるには、以下の2つファイルで作業が必要です。
それぞれで必要な作業を解説していきます。
ファイルの編集が煩わしいという方は、サイト全体にパスワードをかけられる以下のようなプラグインもあります。よろしければ参考にご覧ください。
「Webサイトにパスワードを設定して閲覧を制限したい」 パスワード認証を行う方法として「Basic認証」が有名ですが、サーバーのファイルの書き換えが必要なため、操作に慣れていない方にとっては意外と難しいんですよね。手動でBasic認証をかけてみたい方は下記記事で解説していますので、参考にしてみ...
ファイル作成前に必要な作業
Windowsをお使いの方はこの作業は不要です。Macでは「.htpasswd」や「.htpasswd」のような「.」からはじまる名前のファイルはデフォルトのままだとFinder上に表示されません。
そのため、事前にターミナルを使ってファイルの表示設定を変更しておく必要があります。以下をターミナルにコピペするだけでOKです。
killall Finder
表示設定を元に戻したい場合は、下記をコピペします。
killall Finder
「Ctrl」+「Space」や「command」+「Space」で起動するSpotlightなどのランチャーアプリに「terminal」と入力するとターミナルをスムーズに立ち上げられます。
.htpasswdの作成
まずは「.htpasswd」というファイルを作成します。このファイルはBASIC認証に必要なユーザー名とパスワードを設定するためのファイルになります。ファイルを作成するといってもやることは単純で、完成形はこんな感じです。IDとパスワードが暗号化された1行のテキストファイルになります。
下記のような便利なツールがありますので、複雑なIDとパスワードを生成して暗号化するだけです。情報が漏洩しないように暗号化は必ず行ってください。
暗号化する前のパスワードは、ログイン時に必要なのでどこかにメモしておきましょう。
ID:koreusjeun
パスワード:KouhdebdFishainQ
.htaccessへ追記
続いて「.htaccess」というファイルに以下を追記します。このファイルでは、先ほど作成した「.htpasswd」を使ってBASIC認証を行うための作業を行います。
BASIC認証をかけたいWordPressサイトの「wp-admin」と同じ階層にある「.htaccess」を編集します。
上記のような記述があるので、その上部に以下を追記します。
AuthGroupfile /dev/null
AuthName “Please enter your ID and password”
AuthType Basic
require valid-user
「.htaccess」の中身が下記のようになればOKです。
これでサイトにアクセスしてみてください。ダイアログが開き、IDとパスワードを求められるはずです。メモしたログイン情報でアクセスできれば、正常にBASIC認証がかかっています。
500エラーでサイトへアクセスできない場合は?
ファイルの内容を間違えていると500エラーとなり、正しいログイン情報を入力してもサイトを表示できなくなります。
多くの場合、「.htaccess」内に記述する「ルートディレクトリからのフルパス」の部分を間違えていることが原因です。筆者もこの部分を間違えていました。
BASIC認証をかけたいサイトをサブドメインや、サブディレクトリで運営されている場合、正確にフルパスを記載しなければ、500エラーが発生してしまいます。
そこで正確なフルパスを確認するために、以下をコピペしたテキストファイルを作ってみてください。ファイル名は任意のものでOKですが、phpファイルなので末尾は「.php」にしましょう(例:「fullpath.php」)。
<?php
echo __FILE__;
?>
できたファイルを「フルパスを知りたいディレクトリ」にアップロードして、ブラウザでアクセスしてみてください。例えば「tcd-theme.com/tcd090」のフルパスを知りたい場合は、「tcd090」というディレクトリに「fullpath.php」をアップ後、ブラウザで「tcd-theme.com/tcd090/fullpath.php」にアクセスします。
すると以下のようなフルパスが表示されますので「fullpath.php」の前までをコピペすればOKです(※以下はあくまでサンプルです)。
正確なフルパスを記載すれば、500エラーは消えるはずです。
エラーが消えて、BASIC認証が機能しているかテストする際は、下記の方法が最も手軽です。
サイトやページにパスワードをかけて閲覧に制限をかけるBASIC認証ですが、設定したにもかかわらず、認証後のページが表示されることがあります。BASIC認証が正しく設定されていないか、cookie(クッキー)が残っていることが原因です。 cookieを削除する(orブラウザを閉じる)か、別のブラ...
まとめ
2つのファイルを作成・編集して手動でBASIC認証をかける方法をご紹介して参りました。
プラグインを使ったり、サーバーの管理画面を操作して行う方法は簡単ですが、使用しているテーマとの相性やサーバー会社によっても使い勝手が左右されます。
当記事でご紹介した方法を覚えれば仕組みがわかるので、トラブル時にも応用を利かせられるかもしれません。ひとつひとつは難しい作業ではないので、ぜひチェックしてみてください。
プラグインを使ったり、サーバーの管理画面からBASIC認証を設定する方法もあるので、こちらの記事も参考にご覧ください。
コメント