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

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

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

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

Q&A

解決済

1回答

773閲覧

ワードプレス固定ページに設定したベーシック認証が勝手にキャンセルされる

hiro..

総合スコア79

WordPress

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

0グッド

0クリップ

投稿2020/10/16 04:22

編集2020/10/16 04:57

いつもお世話になっております。

ワードプレスの特定の固定ページにベーシック認証をかけたのですが、
認証のダイアログも表示されずにすぐキャンセルとなってしまいます。

ローカルと、別のサーバーで動作を確認したコードなのでコード自体は間違っていないはず、
と思うのですが、先ほどテストでサブドメインにあげてみたところ、上記のような挙動になってログインできなくなりました。。

うまく行った時と違うのは、ドメイン直下ではなくサブディレクトリにWPをインストールしたということくらいなのですが(URLはドメイン直下で表示されるように変更しました)、
それでベーシック認証が勝手にキャンセルされたりするのでしょうか。

追記 === 以下のようなエラーがログに出ておりました

PHP Warning: Cannot modify header information - headers already sent by (output started at /home/.サーバー内ディレクトリ./wp/wp-content/themes/_s/header.php:14) in /home/.サーバー内ディレクトリ./wp/wp-content/themes/_s/functions.php on line 289

追記ここまで ========

コードは以下になります。

//header.php <head> <?php if(!is_home()): if(is_page('member-only')): $userArray = array("admin" => "password"); basic_auth($userArray); endif; endif; ?>
//functions.php function basic_auth($auth_list,$realm="Restricted Area"){ if (isset($_SERVER['PHP_AUTH_USER']) and isset($auth_list[$_SERVER['PHP_AUTH_USER']])){ if ($auth_list[$_SERVER['PHP_AUTH_USER']] == $_SERVER['PHP_AUTH_PW']){ return $_SERVER['PHP_AUTH_USER']; } } header('WWW-Authenticate: Basic realm="'.$realm.'"'); header('HTTP/1.0 401 Unauthorized'); header('Content-type: text/html; charset='.mb_internal_encoding()); die(home_redirect()); } //ベーシック認証キャンセル時 function home_redirect(){ echo "<script type=\"text/javascript\">alert(\"ログインがキャンセルされました\");</script>"; echo "<script type=\"text/javascript\"> setTimeout(function(){ window.location.href = \"/\"; }, 0*1000); </script>"; }

エラーの内容から、コードの前に空白が無いかや記述位置を確認したのですが、特に問題は無いようでした。

勝手にキャンセルされる原因につきまして、なにかヒントをご教示いただけましたら幸いです。
よろしくお願いいたします。

サーバー:Mixhost
WP:5.5.1

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

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

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

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

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

guest

回答1

0

自己解決

自己解決しました????

headよりも何よりも先に関数を書かないといけなかったようです。記述場所を間違えておりました。
(でもちゃんとローカルでは動いてたのですが・・・)

投稿2020/10/16 05:07

hiro..

総合スコア79

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問