WordPewssプラグインStaticPressを使用して静的HTML配信時のBasc認証の使用方法について記載します。
StaticPress使用時は以下の観点からBasic認証を設定しておくことをお勧めします。
セキュリティの観点
SEOの観点
WordPressのStaticPressの導入については以下の記事をご参照ください。
StaticPressとStaticPress S3を使用してS3+CloudFrontでコンテンツ配信するケースの導入例
StaticPressを使用してEC2+CloudFrontでコンテンツ配信するケースの導入例
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ステップの作業となります。
「.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してから、実際に上記で開いたファイルに書き込みをします。
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エンコードは以下のようなサイトを利用させてもらうのがオススメです。
動作確認する
動作確認用の修正をWordPressで行い、
StaticPressで再構築を行ったあと、
配信サイト側に修正内容が反映されていればOKです!