WordPressのプラグインStaticPressでBasic認証を使う

WordPewssプラグインStaticPressを使用して静的HTML配信時のBasc認証の使用方法について記載します。

StaticPress使用時は以下の観点からBasic認証を設定しておくことをお勧めします。

Basic認証をオススメする理由

セキュリティの観点
SEOの観点

WordPressのStaticPressの導入については以下の記事をご参照ください。

StaticPressとStaticPress S3を使用してS3+CloudFrontでコンテンツ配信するケースの導入例

【日本語URL対応版】WordPressのコンテンツを StaticPress S3プラグインを使用して配信する方法
WordPressコンテンツをStaticPressS3を使用してS3+CloudFrontで配信する方法を記載。 コピペで環境構築できます。S3+CloudFrontで配信することで「 低コストで安定したサイト運用ができる」「高速なサイトを構築できる」「セキュリティ的に安全」というメリットがあります。

StaticPressを使用してEC2+CloudFrontでコンテンツ配信するケースの導入例

StaticPressを使ってEC2上のWordPressコンテンツをCloudFront経由で簡単に配信する方法
WordPressのコンテンツを静的ページ化し、CloudFrontで配信できるようにします。静的ページ化するところはWordPressのプラグインStaticPressを使用します。CloudFrontのキャッシュクリアはClear CloudFront Cacheプラグインを使用します

Basic認証を設定した方がいい理由を書いていきます!

スポンサーリンク

Basic認証を設定した方が良い理由

配信ケース毎にBasic認証を設定した方が良い理由を記載します

StaticPressとStaticPress S3を使用してS3+CloudFrontでコンテンツ配信するケース

AWSのEC2のStaticPressにて静的HTMLを生成し、静的HTMLをStaticPress S3を使用して他のサーバ(S3+CloudFront)に転送して配信するケースでのBasic認証について記載します。

HTMLを生成するサーバ(EC2)には、Basic認証をかけておいた方がSEO的に良いです。

SEO的に良い理由としては、Basic認証をかけないと、

「EC2」と「S3+CloudFront」の両方でコンテンツを配信することになり、

Google等のクローラーから見ると2つのサーバで同一の記事が配信されている(コピー記事配信している)ように見えてしまうためです。

また、WordPress管理画面にアクセスの際に、Basic認証が必要になるため、セキュリティ向上が期待できます。

StaticPressを使用してEC2+CloudFrontでコンテンツ配信するケース

StaticPressを使用して、WordPressが動いているサーバで、静的ファイルの配信を行う場合も、以下の2つのURLが存在することになりますので、「WordPressのURL」の方にはBasic認証をかけた方がSEO的に良いです。

  • WordPressのURL
  • WordPressを静的ファイル化して配信するURL

また、WordPress管理画面にアクセスの際に、Basic認証が必要になるため、セキュリティ向上が期待できます。

Basic認証を設定するメリットのまとめ

配信ケース毎にBasic認証を設定した方が良い理由を記載しましたが、2つの配信ケースで共通して以下のメリットがあると言えます。

メリットのまとめ

WordPress管理画面へのアクセスにはBasic認証が必要になる
→セキュリティ向上
「WordPressを静的ファイル化して配信するURL」と「WordPressのURL」で、同一の記事が配信されていると、Google等のクローラーにみなされないようにできる(コピー記事配信しているとみなされないようにできる)
→「WordPressのURL」にBasic認証をかけることで、「WordPressのURL」にGoogle等のクローラーはアクセスできなくなる
→Google等のクローラーは「WordPressを静的ファイル化して配信するURL」にのみアクセスすることになり、コピー記事配信しているとみなされないようにでき、SEO対策になる

Basic認証のかけ方

それでは、本題のBasic認証のかけ方について記載していきます。

コピペでBasic認証を設定できるよう記載しています。

大きく以下の2ステップの作業となります。

Basic認証設定の2つのステップ

「.htaccess 」と「.htpasswd 」ファイルをEC2上に作成
→WordPressにBasic認証を設定
StaticPressのソースコードを修正
→Basic認証を設定した状態でStaticPressを動かせるようにする

「.htaccess 」/「.htpasswd 」ファイル作成方法

WordPressにBasic認証を設定する方法から書いていきます!

「.htaccess 」ファイル作成方法

ファイルをviで開きます。

vi {WordPressドキュメントルート}/.htaccess

以下のテキストを貼り付けて保存します。


AuthUserFile {WordPressドキュメントルート}/.htpasswd
AuthGroupFile /dev/null
AuthName "Please enter your ID and password"
AuthType Basic
require valid-user

{WordPressドキュメントルート}の部分は自分の環境のものに書き換える必要があります。

WordPressドキュメントルートは、WordPressがインストールされているフォルダ(「wp-config.php」ファイルなどがあるフォルダ)を指しています。

「.htpasswd 」ファイル作成方法

ファイルをviで開きます。

vi {WordPressドキュメントルート}/.htpasswd

ファイルに記載する内容は以下のサイトのように「.htpasswd」の中身を生成してくれるツールがあるので、

ツールを利用させてもらうなどして、「.htpasswd」の中身をgetしてから、実際に上記で開いたファイルに書き込みをします。

htpasswdファイル生成(作成)
htpasswdファイル生成(htpasswdファイル作成)するweb・ウェブ制作に役立つ便利ツール。htaccessを利用したユーザー認証によるアクセス制限(ベーシック認証)が可能です。

Basic認証動作確認

WordPressの任意の画面にアクセスして、

Basic認証がかかっていること、Basic認証を突破できることを確認します。

StaticPressのソースコード修正

Basic認証を設定した状態でStaticPressを動かせるように、

StaticPressのソースコードを修正します。

Basic認証をかけた状態でStaticPressを使用して、静的ファイルを生成する際(再構築する際)には、ソースコードを編集する必要があります。

ソースコードを編集しないと、静的ファイルが正しく生成されないので要注意です。

修正方法は以下をご参照ください。

修正ソース:wp-content/plugins/staticpress/includes/class-static_press_admin.php 

修正前


static public function basic_auth(){

return get_option(self::OPTION_STATIC_BASIC, false);

}
修正後


static public function basic_auth(){

//return get_option(self::OPTION_STATIC_BASIC, false);

return '{「ID:パスワード」をbase64エンコードしたもの}';

}

「{「ID:パスワード」をbase64エンコードしたもの}」の記述内容ついて、

base64エンコードは以下のようなサイトを利用させてもらうのがオススメです。

base64エンコード/デコードツール|株式会社エン・PCサービス
base64エンコード/デコードをウェブ上で行うためのツールです

動作確認する

動作確認用の修正をWordPressで行い、

StaticPressで再構築を行ったあと、

配信サイト側に修正内容が反映されていればOKです!