本記事では、WordPressで特定のURLにベーシック認証をかける方法を紹介していきます。
今回紹介する方法は、「.htaccess」と「.htpasswd」ファイルを使ってベーシック認証をかけていきます。
Basic認証は、ID(ユーザー名)とパスワードを設定し、サイトの閲覧を制限するものです。
特定のURL、今回の場合は『basicauthentication』をURLに含むページにベーシック認証をかけれる。
『category』など複数存在するURLを指定することでURLにcategoryを含む全てのページにベーシック認証が適用される。
『category』『contact』など特定のURLを複数指定することも可能。
.htpasswdファイルの作成
まずベーシック認証に使用するIDとパスワードを決めます。
例) ID:admin パスワード:1234
次に下記のサイトにてパスワードの暗号化をします。
決めたIDとパスワードを入力して生成ボタンをクリックします。
すると暗号化されたコードが生成されます。
.htpasswdファイルを作成し、暗号化されたコード『admin:R9WKYuYfP3616』をファイルに記述します。
これで.htpasswdファイルは完成です。
.htaccessファイルの作成
.htaccessファイルを作成、または既に.htaccessファイルが存在する場合は既存のファイルに下記のコードを追加してください。
DirectoryIndex index.html index.htm index.shtml index.php index.cgi
Options -Indexes
AuthUserFile /home/ドメイン名/フォルダ名/.htpasswd
AuthType Basic
AuthName "Input your ID and Password."
Require valid-user
SetEnvIf Request_URI "(ベーシック認証したいURL)" auth_chk
Satisfy any
Order deny,allow
Deny from env=auth_chk
追加したコードに2カ所修正するポイントがあります。
.htpasswdファイルを設置するディレクトリを設定します。
AuthUserFile /home/ドメイン名/フォルダ名/.htpasswd
ベーシック認証したいURLを設定します。本記事の場合は、『basicauthentication』にしておくことでベーシック認証をかけることができます。
SetEnvIf Request_URI “(ベーシック認証したいURL)” auth_chk
『category』など複数存在するURLを指定することでURLにcategoryを含む全てのページにベーシック認証が適用されます。
『category』『contact』など特定のURLを複数指定するときは、“(category|contact)” にすることで複数の特定のURLにベーシック認証をかけることができます。
これで.htaccessファイルも完成です。
.htaccessファイルと.htpasswdファイルの設置
ドメイン直下に作成・編集した.htaccessファイルと.htpasswdファイルを設置します。
以上で特定のURLにベーシック認証をかけることができます。