WordPress

お名前.comでBasic認証がかからない原因と.htaccess設定手順

お名前.comでBasic認証がかからない原因と.htaccess設定手順 laptravel.com

「アクセス制限をかけたから安心」と思っていませんか?

お名前.comの仕様上、WordPressをインストールした瞬間に、コントロールパネルで設定したアクセス制限は勝手に外れてしまいます。

「気づかないうちに、作成中のサイトが丸見えだった・・・」
そんな事故を防ぐために、手動(.htaccess)で確実に鍵をかけ直す方法を解説します。

この記事でわかること

・お名前.comでBasic認証が勝手に外れる原因
・Basic認証(アクセス制限)の仕組み
・【コピペOK】初心者でも迷わずできる.htaccess記述手順
・画面が真っ白・反映されない時のトラブル対処法
・サイト公開時にBasic認証を解除する方法

まっちー

もしもアクセス制限をかける目的が『Google検索に出したくない』だけなら、この設定は不要です。WordPress管理画面の『検索エンジンでの表示』のチェックを入れるだけでOK。

WordPressでサイトを作ったけど、サイトの公開自体はまだ先という場合や、特定の人にだけアクセスを許可したい場合などは、これから解説するBasic認証は必須です。

お名前.comのコントロールパネルで設定するアクセス制限は、WordPressサイトには反映されない

過去に、何時間もかけて試行錯誤を繰り返しましたが、「どうしてもアクセス制限がかからない!!」ということがありました。
何か良い情報はないかと思い、ようやく辿り着いたお名前.comのFAQを確認してみると・・・

お名前.comのコントロールパネルで設定するアクセス制限は、WordPressをインストールすると、新たに「.htaccess」ファイルが生成されるため機能しないという事実が発覚。

以下の方法で、.htaccessと.htpasswdのファイルを自分で作成し、サーバーへアップロードするとアクセス制限がかかるようになります。

Basic認証(アクセス制限)とは

Basic認証というのは、Webページに閲覧制限をかける認証方法のことです。
設定に必要なのは、「ユーザー名」と「パスワード」の2つ。この2つを知っている特定の人だけがWebページにアクセスできるという仕組みです。

Basic認証を設定すると、「ユーザー名」と「パスワード」入力のポップアップが表示されます。

STEP1 「.htaccess」ファイルをダウンロード(隠しファイルを表示)

まずは、FTPソフトを使ってサーバー接続します。
サーバーに接続したら、あなたのWebサイトのデータが入っているフォルダ(WordPressが入っている場所)を開いてください。「wp-admin」「wp-content」というフォルダが見えている場所が、正解の場所(ルートディレクトリ)です。

その中に「.htaccess」というファイルがあるはずです。

※.htaccessは隠しファイルの表示設定によって表示・非表示が切り替えられるため、もしもファイルが表示されていないという方は、以下の方法をお試しください。

MacでFTPクライアントがCyberduck(サイバーダック)の場合
Cyberduckを選択している状態で、メニューバーの表示を選択→「不可視ファイルを表示」を選択。

Mac版Cyberduckの表示メニューから「不可視ファイルを表示」を選択している様子


表示されたら、.htaccess」ファイルをPC内の指定場所(デスクトップやダウンロードフォルダなど)にダウンロードします。

次の手順以降で、「.htaccess」ファイルの書き換えを行なっていきます。万が一の備えとして「.htaccess」ァイルを複製しバックアップしておきましょう。

STEP2 「.htpasswd」ファイルを作成

http://www.luft.co.jp/cgi/htpasswd.php
.htpasswd生成ツールを使うと便利です。

まずは認証する際に使用する、「ユーザーID」と「パスワード」を決めて入力してください。

入力が終わったら、生成ボタンを押します。


パスワードが暗号化された(ユーザー名と、暗号化パスワードが半角コロンで区切られた)状態で生成されます。

「.htpasswd」ファイル内に記述するのは、この一行のみ。生成した暗号化されたパスワードをコピーしておきましょう。

エディタを開き、ファイルを新規作成したら、コピーしたパスワードをペーストして保存します。ファイル名は「.htpasswd」にします。

STEP3 フルパスを調べる

STEP4で「.htaccess」ファイルに記述するためには、パスワードファイル(.htpasswd)がどこにあるかを指定するために「フルパス」を調べる必要があります。

フルパス(絶対パス)とは

サーバーの一番上の階層(ルートディレクトリ)から、特定のファイルまでの道のりをすべて記述したものです。

通常、Webサイト制作では現在の場所を基準にする「相対パス」を使うことが多いですが、今回のようなサーバー設定(.htaccess)では、誰が見ても場所が特定できる「フルパス」での記述が必須となります。

まずはエディタを開いて、phpファイルを作成します。

<?php
echo __FILE__;
?>

ファイル名は何でも大丈夫です。今回は、「test.php」で保存します。

サーバーへのアップロード FTPソフトを使って、WordPressがインストールされているのと同じフォルダ(wp-adminやwp-contentがある場所)にtest.phpをアップロードします。

ブラウザで確認 アドレスバーに、あなたのサイトURL/test.php と入力してアクセスします。(例:https://laptravel.com/test.php)

すると画面に「フルパス」が表示されます。これをメモしておいてください。

確認が終わったら、セキュリティのためサーバー上の「test.php」は必ず削除してください。

STEP4 「.htaccess」ファイルの編集とアップロード

ダウンロードした「.htaccess」を開くと以下のような記述があり、まだパスワード制限に関する記述は何もない状態です。

# BEGIN WordPress

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

# END WordPress

一番下の行(# END WordPress の下)に改行を入れて、以下のコードを貼り付けてください。

AuthUserFile /STEP3で調べたフルパス/.htpasswd
AuthGroupFile /dev/null
AuthName "Please Enter your ID & Password"
AuthType Basic
require valid-user
<Files ~ "^.(htpasswd|htaccess)$">
    deny from all
</Files>

【重要】追記する場所

元々書いてある # BEGIN WordPress から# END WordPressまでの記述は絶対に消さないでください。 今回追加するコードは、元の記述の一番下に追記します。

貼り付けたコードの1行目、AuthUserFileの後ろを、STEP3で調べたフルパスに書き換えてください。(画像のように、パスの最後が.htpasswdになっていることを確認してください)

上書き保存後、.htaccessと、.htpasswdファイルをサーバーの該当ディレクトリへアップロードして、アドレスバーにURLを入力してください。
「ユーザー名」と「パスワード」入力のポップアップ画面が表示されれば成功です。

うまく表示されない時は「キャッシュ」を疑う

「設定したはずなのに、パスワード画面が出ない!」「画面が真っ白のまま変わらない…」
そんな時は、「ブラウザのキャッシュ」が悪さをしている可能性があります。

キャッシュとは?

ブラウザ(ChromeやSafariなど)が、Webサイトの表示を速くするために、一度見たページのデータを一時的に保存しておく機能のことです。
設定を書き換えても、ブラウザが「あ、このページさっき見たから知ってるよ!」と、保存しておいた「変更前の(鍵がかかっていない)古いデータ」を表示してしまうことがあります。

対処法:シークレットモードを使う

キャッシュの影響を受けずに、現在の本当の状態を確認するには「シークレットモード(プライベートブラウズ)」を使うのが一番簡単です。

  • Windows (Chrome): Ctrl + Shift + N
  • Mac (Chrome): Command + Shift + N

シークレットモードでアクセスしてパスワード画面が出れば、設定は成功しています!

もしも「Internal Server Error」が出たら?

画面が真っ白になったり「500 Error」が出た場合は、「.htaccess」ファイル内の記述にミスがあります(全角スペースが入っている、パスが間違っているなど)。

慌てずに、STEP1でバックアップしておいた元の「.htaccess」を再度アップロード(上書き)してください。これで元の状態に戻ります。

まとめ|制作中はBasic認証で安全に

お名前.comでWordPressを使う場合、コントロールパネルでのBasic認証設定は効きません。少し手間に感じるかもしれませんが、一度「.htaccess」の設定方法を覚えておくと、他のサーバーでも応用が効く「Webスキル」になります。

サイトを公開する準備ができたら、
・「.htaccess」ファイル内に追記したコードを削除しサーバーへアップロード
・「.htpasswd」ファイルを削除
するとアクセス制限は解除されます。安全なサイト運営のために、ぜひ活用してくださいね。