質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.42%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

.htaccess

Apacheウェブサーバーにおいて、ディレクトリ単位で設置及び設定を行う設定ファイルを指します。

Q&A

解決済

2回答

14139閲覧

wordpressで固定ページにbasic認証を設定したのですが、何度も認証画面が出てきて入ることができません

matcha-san

総合スコア2

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

.htaccess

Apacheウェブサーバーにおいて、ディレクトリ単位で設置及び設定を行う設定ファイルを指します。

0グッド

0クリップ

投稿2020/05/02 00:35

前提・実現したいこと

wordpressで特定のページにbasic認証をかけたいです。

発生している問題・エラーメッセージ

wordpressで特定のページにbasic認証をかけたく、
様々なサイトを参考にbasic認証をかけてみたのですが、
認証画面は出るものの、IDとPWを入れても何度も認証画面が出てきてページが見れない状態です..

basic認証をはずすとページはちゃんと表示され、ID・PWが間違っているのかと思い、
何度もheader.phpで確認し、正しいものを入れているはずなのですが変わらず何度も出てきてそのページが閲覧できません

何日もここでつまづいております...
何卒よろしくお願い致します。

該当のソースコード

function.php

php

1function basic_auth($auth_list,$realm="Restricted Area",$failed_text="認証に失敗しました"){ 2 if (isset($_SERVER['PHP_AUTH_USER']) and isset($auth_list[$_SERVER['PHP_AUTH_USER']])){ 3 if ($auth_list[$_SERVER['PHP_AUTH_USER']] == $_SERVER['PHP_AUTH_PW']){ 4 return $_SERVER['PHP_AUTH_USER']; 5 } 6 } 7 8 header('WWW-Authenticate: Basic realm="'.$realm.'"'); 9 header('HTTP/1.0 401 Unauthorized'); 10 header('Content-type: text/html; charset='.mb_internal_encoding()); 11 12 die($failed_text); 13}

header.php

php

1<?php 2if(!is_home()): 3if(is_page('4892')): 4$userArray = array("admin" => "pass" 5); 6basic_auth($userArray); 7endif; 8endif; 9?>

試したこと

.htaccessにて何度も聞かれる場合は下記の記述を入れると可能。
と見たので記述を追加しました。

# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTP:Authorization} ^(.*) //追加したもの RewriteRule ^(.*) - [E=HTTP_AUTHORIZATION:%1] //追加したもの RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress

補足情報(FW/ツールのバージョンなど)

サーバーはエックスサーバーを使用しています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

CHERRY

2020/05/02 01:33

何を参考にされたのでしょうか? これらのコードを使うための前提条件があると思いますので、参考にされた情報の出典を記載していただけないでしょうか。
guest

回答2

0

ベストアンサー

大分前の質問ですが、私も同じ現象に悩んで解決しましたのでご報告します。

原因として使用しているサーバーではプログラムで認証のヘッダー情報を取得できないことが原因でした。
ですので.htaccessからベーシック認証をかけることにして、私の場合下記の記述を追加いたしました。

Satisfy Any AuthType Basic AuthName "Input your ID and Password." AuthUserFile (.htpasswdのディレクトリを記述) require valid-user SetEnvIf Request_URI "^/(固定ページスラッグ名を記述)/" dir_auth Order Allow,Deny Allow from all Deny from env=dir_auth

ぜひご参考になさってください。

投稿2020/11/20 00:04

marinkorin12345

総合スコア17

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

なにか Basic 認証にこだわりがあるのでしょうか?

WordPress の標準機能に「固定ページ」「投稿ページ」に対して、各ページ毎に「パスワード」を設定できますが、この機能ではだめなのでしょうか?

WordPressで特定の記事や固定ページにパスワードをかける方法

投稿2020/05/02 01:41

CHERRY

総合スコア25201

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

matcha-san

2020/05/02 01:51

ご回答ありがとうございます! 元々特定の「カスタム投稿」にアクセスする場合に閲覧制限をかけたく思っており、 常に投稿が増えてくる部分でしたので1ページ1ページよりも一気にかけるにはbasic認証が良いのではと思いwordpressにて特定の箇所にbasic認証をかける方法を探しておりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.42%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問