エス技研

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の解説です。

BJ Lazy LoadでWordPressを高速化!SEO効果絶大でPVもアップ!

Lazy Load系の処理を使い画像だけでなくiframe等表示スピードに影響があるものを総合的に対策。入れるだけで高速化するので使わない手はない!

WordPressのカテゴリの編集の解説

WordPressのカテゴリって何?というところから説明し、カテゴリを登録、編集する方法を解説します。また、カテゴリの順番を自由に変える方法も解説します。

Custom Post Type UIでカスタム投稿を設定し編集する方法解説

カスタム投稿を追加、管理するプラグインCustom Post Type UIの使い方の解説です。プラグインの解説ではあるものの、カスタム投稿の仕様の解説でもあります。

WordPress 任意のファイルを読み込むショートコードの処理

投稿ページにショートコードを利用して任意のファイルを読み込む処理の解説です。

Export to Textで WordPressを csv出力

WordPressのデータを csv出力する Export to Textの使い方を解説しています。

highlight.jsの設定方法を解説。 Syntax Highlighterから乗換え、高速化にも最適

Crayon Syntax Highlighterの代替案としてhighlight.jsを試してみた。highlight.jsは設置簡単で軽量なシンタックスハイライト。デザインもCSS変更だけの簡単変更。

WordPressの 外観のテーマのための関数の並び順

WordPressのカスタマイズの際にテーマのテンプレートを編集しますが、そのテーマファイルの並び順の解説です。

WordPress csvインポート、エクスポートのプラグイン

WordPressから csvファイルをエクスポート、インポートする方法を紹介しています。

Advanced Custom Fieldsのカスタムフィールドの登録上限が max_input_varsに影響する問題の対処方法

Advanced custom Fieldsには登録できるフィールド数に上限があります。php.iniのmax_input_varsによる制限ですが、フィールドグループを分割することで解決できます。