エス技研

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.

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

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

  関連記事

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

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

WordPressのプラグイン WP-DBMANAGERを使って PHP、CakePHP、baserCMSなどで作った Webサービスのデータベースも自動バックアップ

WP-DBMANAGERを使って WordPress以外の PHP、CakePHP、baserCMSなどで作った Webサービスのデータベースも自動バックアップする方法を解説。

Custom Post Type UIでカスタムタクソノミーを設定し編集する方法解説

カスタムタクソノミーを追加、管理するプラグインCustom Post Type UIの使い方の解説。プラグインの解説ではあるものの、カスタムタクソノミーの仕様の解説でもある。

WordPressの Google XML Sitemapsで WebMaster Tools用の sitemap.xmlを生成

WordPressの Google XML Sitemapsで WebMaster Tools用の sitemap.xmlを生成する方法を説明しています。

プラグインが原因で起動しないWordPressを復旧させる方法解説

プラグインが原因で WordPressが起動できなくなった、ログインできなくなった場合の対処方法の解説です。

WP Basic AuthなどWordPressにBasic認証を設定するプラグインのまとめ

WordPressにBasic認証を設定する方法のまとめ。プラグインを使う方法と.htaccessで設定する方法を紹介。公開側、ログインページをそれぞれ設定できます。

BizVektor環境の引越しでメニュー、バナーが消える不具合の対応方法解説

BizVektor環境の引越し方法と不具合が発生しやすい箇所の解説です。引っ越し作業をする際にURLやファイルのパスを置換する際の手順解説と対応方法についての解説です。

SyntaxHighlighterの設定、カスタマイズ方法を解説。Crayonから乗換え、高速化にも最適

SyntaxHighlighter 3の設置方法、各機能の設定方法、オプション、デフォルト設定の変更方法を解説。Crayonから乗り替えるならこれしかない。

Edit Author Slugで WordPressの不正ログイン・不正アクセスを回避

WordPressのセキュリティ強化に Edit Author Slugを使う理由と設定方法の解説をしています。

Custom Post Type UIでカスタム投稿を設定・バージョン1.4対応解説

カスタム投稿をプラグインCustom Post Type UIを使って設定する方法を解説。バージョンアップにより設定する項目も増え、より柔軟な設定ができます。