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」へのパスを修正します。
1 2 3 |
修正前:require( dirname( __FILE__ ) . '/wp-blog-header.php' ); ↓ 修正後:require( '/home/example.com/public_html/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行を追記することで対処することができます。
1 |
remove_filter('template_redirect', 'redirect_canonical'); |
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認証を設定する方法
GoogleAdwords
GoogleAdwords
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!
関連記事
-
WordPressプログラム全体で定数や変数を利用する場合の設定方法
WordPressで関数を追加するときなど、全体で同じ変数を使いたいと思う場面の対処方法です。変数を記述する関数はfunctions.php、wp-config.phpのいずれか。
-
WordPressのウィジェットでショートコードを使う方法add_filter
WordPressのウィジェットでショートコードを利用するには add_filter、do_shortcodeの関数を利用する必要があります。
-
Theme My Loginでメール認証、管理者承認付の会員管理・基本編
会員管理をするプラグインTheme My Loginの解説。メール認証、管理者認証、reCAPTCHAによるいたずら登録を防止し、ログイン攻撃対応のセキュリティも備わっている。
-
Comment Rating FieldでWordPressのコメントに口コミサイト機能を追加
口コミサイトを構築するためのプラグイン。評価点を投票する仕組みをコメント投稿機能に追加する方法で実現。口コミサイトを構築するには十分な機能を提供。
-
Rich ReviewsでWordPressに口コミサイトを簡単に構築する方法
口コミサイトに必要なレビュー投稿機能を提供するプラグインです。独自のフォームをショートコードで編集する自由度が高い設計で、平均点の表示も用意されています。
-
WordPressの投稿データ(記事データ)の管理方法
投稿の登録の方法、投稿データの管理方法の解説。MetaManagerなどのプラグインを入れた場合の入力ボックスを表示させる方法についても解説します。
-
Contact Form 7使い方詳細解説・WordPressメールフォーム
WordPressの標準お問い合わせメールフォームである Contact Form 7の詳細な使い方の解説です。
-
WordPressで使うおススメ FTP、テキストエディタ、圧縮解凍ソフト
WordPressサイトを構築、運用するために必要となるFTPソフト、テキストエディタ、圧縮解凍ソフトのオススメソフトを紹介。
-
WordPressのフォームプラグイン「MW WP FORM」でメールが送信できない不具合の対応方法
WordPressでメールフォームと言えば MW WP Form!そのMW WP Formでフォームを作成したものの、エラーでメールが送信できない!その原因と対処方法を解説。エラーが発生する意外な盲点もある。
-
WordPressのおすすめプラグイン記事のまとめ一覧
WordPressプラグインのまとめ。WordPressのプラグイン紹介記事も多くなってきたため紹介コメント付のプラグインまとめ記事を作成しました。