エス技研

WordPress、CakePHP、PHP、baserCMSなどの Web系システムを中心に情報を提供します!


WordPressのカテゴリ単位・フォルダ単位でBasic認証を設定する方法

      2017/03/11

カテゴリ単位・フォルダ単位でBasic認証を設定

 

カテゴリ単位・フォルダ単位でBasic認証を設定する方法解説

 
WordPressのカテゴリ単位やフォルダ単位で Basic認証を設定する方法を解説します。
 
WordPressの場合は、カテゴリやアーカイブページは「mod rewrite」によって URLを疑似的に構成されているにすぎません。
実際にはカテゴリとなるフォルダがあるわけではないため、その存在しないフォルダに Basic認証を設定できない、と思いがちです。
 
ですが、実は Basic認証を設定することができるのです。
 
具体的な手順は以下の通りです。
 
 

1.カテゴリフォルダの作成

Basic認証を設定するカテゴリの slug名のフォルダを作成します。
階層が深い場合は、URLに合うようドキュメントルートからの階層も合わせてフォルダを作成します。
 
 

2.index.php、.htaccessをコピー

ドキュメントルートにある index.php、.htaccessの 2ファイルを「1.カテゴリフォルダの作成」で作成したフォルダにコピーして入れます。
 
 

3.wp-blog-header.phpへのパスの変更

「2.index.php、.htaccessをコピー」でコピーした index.phpに記述されている「wp-blog-header.php」へのパスを修正します。
 

 
修正後のファイルのパスは、実際の値は各自のサーバに合わせて変更しますが、サーバのルートから直接記述する形になります。
ドキュメントルートからのパスではありませんので注意してください。
 
「dirname( __FILE__ )」のように動的な指定をしたいところですが、なかなか難しい場合もありますので、ここでは「wp-blog-header.php」までのパスを直接指定する方法にしています。
 
 

4.Basic認証の設定をする

 
.htaccess、.htpasswdファイルに、それぞれ Basic認証に必要な記述を追記します。
 
Basic認証の設定は、.htaccess、.htpasswdに記述する内容を生成するツールを下記に用意していますので、こちらをお使いください。
 http://s-giken.info/ht_maker/ht_maker.php
 
 
これだけで、カテゴリ単位・フォルダ単位でBasic認証を設定するすることができます。
想定のカテゴリにアクセスし、Basic認証のログイン画面が表示されるかどうかを確認しましょう。
 
 


 

サブドメインでリダイレクトループが発生する場合の対処方法

 
Basic認証を設定する環境がサブドメインを設定して構築してある場合、リダイレクトループが発生する場合があります。
 
これは、特定のディレクトリにある .htaccessで URLをリライトする場合や、特定のディレクトリから親ディレクトリの WordPressを呼び出そうとする場合などに発生するようです。
 
これに対処する方法としては、functions.phpファイルに以下の 1行を追記することで対処することができます。
 

 
functions.phpについては、「WordPressの functions.phpがある場所」を参照してください。
 
 
「/wp-includes/template-loader.php」ファイルの「do_action(‘template_redirect’);」をコメントアウトする方法を紹介しているサイトもありましたが、コアに手を入れるのは避けるべきですね。
 
 
ちなみに、リダイレクトループにはさまざまな要因があり、解決方法も多岐にわたります。
それらの原因と解決方法をまとめた記事を「リダイレクトループが原因で「ERR_TOO_MANY_REDIRECTS」「このページを表示できません」が出たときの対策12事例+α」に書いていますので、そのほかでリダイレクトループが発生した時は参考にしてみてください。
 
 

カテゴリ単位に Basic認証を設定する際の注意点

 
ここで解説したカテゴリ単位で Basic認証を設定する方法ですが、当然のことですが、記事もカテゴリ単位でパーマリンク設定されていなければ設定することができません。
 
つまりは、パーマリンク設定画面で、パーマリンクは「カスタム構造」にする必要があり、下記の様に記事はカテゴリ名の下に付ける必要がある。
 
  http://example.com /%category%/%postname%
 
 
新規でサイトを構築する場合は問題ありませんが、上記のようなパーマリンク設定をしていないサイトの場合は Basic認証を設定する必要があるかどうかは検討が必要ですね。
パーマリンク設定を変更する必要がありますので、URLが変わり SEOの面から集客力に影響が出るためです。
 
 
まぁ、そもそも Basic認証を設定するページは検索エンジンにヒットしませんので、気にする必要はない、という判断ができるのであれば問題ありませんが。
 
 
また、WordPressには会員認証機能が標準でありますので、会員サイトを構築する場合には Basic認証ではなく、WordPressの会員管理機能を利用することを検討する方がいいでしょう。
会員管理プラグインの一つとして「Theme My Login」については「Theme My Loginでメール認証、管理者承認付の会員管理・基本編」に記事を書いていますので、参考にしてみてください。
 
 

公開側と管理側の URLを別のドメインにする方法

 
今回ここで紹介した機能と同じような仕組みを利用して設定する機能といて、公開側の URLと管理側の URLを別のドメイン、サブドメインとして設定する方法があります。
 
セキュリティ面から有利な仕組みですが、詳細は下記に記事を書いていますので参考にしてください。
  WordPressの管理画面と公開画面を別のドメインに分離して運用する方法
 
 

特定の URL、ページに Basic認証を設定する方法

 
今回紹介した内容とほぼ同じですが、特定の URLだけに Basic認証を設定することも可能です。
詳細は下記に記事を書いていますので、合わせて参考にしてみてください。
  WordPressで特定のURL、ページ、ファイル単位でBasic認証を設定する方法
 
 

Basic認証関連の記事まとめ

 
Basic認証関連の記事もいろいろと書いていますので、あわせて参考にしてみてください。
 
 ロリポップで baserCMSを利用する際の Basic認証の設置には注意しましょう
 WordPressのログイン画面 URLを変更する 管理画面に Basic認証を設定する
 WordPressの管理画面ログインURLの変更方法解説
 WordPressの管理画面ログインURLファイルにBasic認証を設定する方法解説
 Basic認証をファイル単位・URL単位で設定する方法の解説
 ロリポップでWordPress+Basic認証で不具合発生!回避方法解説
 Basic認証の.htaccess、.htpasswd生成ツールと解説
 WP Basic AuthなどWordPressにBasic認証を設定するプラグインのまとめ
 WordPressのカテゴリ単位・フォルダ単位でBasic認証を設定する方法
 WordPressで特定のURL、ページ、ファイル単位でBasic認証を設定する方法

 - WordPress

GoogleAdwords

GoogleAdwords

最後までお読みいただきましてありがとうございます。
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

下記の空欄を埋めてください。 * Time limit is exhausted. Please reload CAPTCHA.

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

※入力いただいたコメントは管理者の承認後に掲載されます。

  関連記事

SI CAPTCHA Anti-Spamを使って WordPressのコメントスパム対策をする

コメントスパム対策として入力させない対策の一つとしてCAPTCHAという方法がありそれを簡単に実装できるプラグインSI CAPTCHA Anti-Spamの解説です。

WordPressのスラッグとは?

WordPressのスラッグって何?それを解説している記事です。なんとなく分かっている気になっているものを改めてしっかり確認をしてみませんか?

Author hReviewでWordPressに構造化されたレビューサイトを構築

レビューサイトを構築するためのプラグイン。レビューの入力とレビュー対象のアイテムの情報を構造化データにするHTMLを編集する機能を提供します。

自サイト内のリンクをショートコードで指定する・アンカーリンク対応版

自サイト内の記事にショートコードで自動リンクを設定する関数のソースコードを提供。Post ID、slugで指定でき、アンカーリンクを設定する場合も対応。

Throws SPAM Awayでコメントスパム対策を完璧に。自動削除で運用の手間ゼロ

コメントスパム対策の決定版ともいうべきプラグイン。簡単な設定で自動的にスパムコメントを削除してくれるので煩わしい作業はゼロに。細かな設定も可能。

Multi RatingでWordPressの口コミサイトを構築

口コミの評価点を投稿する機能に特化。評価点を複数設定することができ、投稿後の評価点を編集することができる数少ないプラグイン。日本語にも対応。おススメ。

WordPressのおすすめの確認画面付きお問い合わせフォームプラグイン・MW WP Form

MW WP Formは確認画面が付いているオススメのフォームプラグインです。企業サイトを CMSとして構築する際にも利用できる実力派です。

30分でWordPressを引越し・他のサーバに引越しや開発環境の構築手順

WordPressを他のサーバに引っ越しするとき、テスト環境を作るときなどの作業手順をまとめました。プラグインを使う方法もありますが手作業でも簡単です。

WP Mail SMTPはPHP5.6、7.0系ではメール送信時にエラーが発生。その対処方法。
WP Mail SMTPはPHP5.6、7.0系ではメール送信時にエラーが発生。その対処方法。

PHPのバージョンを5.6(7系含む)にアップデートしたらプラグイン WP Mail SMTPを利用してSMTPサーバ経由して送信していたメールが送信できなくなった。その原因と対処方法を詳細解説。

PoeditでWordPressの日本語対応方法。英語プラグインの日本語翻訳ファイル作成

プラグインの日本語化の手順のまとめ。.pot、.po、.moファイルの解説や便利ツールの Poeditの紹介を行いつつ、手順、ファイル設置場所、注意ポイントなども紹介。