前提・実現したいこと
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/ツールのバージョンなど)
サーバーはエックスサーバーを使用しています。
回答2件
あなたの回答
tips
プレビュー