質問概要
ベーシック認証をかけることができません。
以下の誤りをご指摘頂けませんでしょうか。
現状
まず index.php で、通常画面と管理画面を分岐しています。
1つめのパスが $admin_names に該当するか否かで、front.php (通常画面) と admin.php (管理画面) を require する次のコードです。
この admin.php (管理画面) にベーシック認証をかけたいのです。
index.php
php
1<?php 2$paths = explode('/', $_SERVER['REQUEST_URI']); 3$admin_names = ['adminmugicha']; 4if( in_array($paths[1], $admin_names, true) ){ 5 require $_SERVER['DOCUMENT_ROOT'] . '/admin.php'; 6}else{ 7 require $_SERVER['DOCUMENT_ROOT'] . '/front.php'; 8}
発生している問題
そのため次の .htpasswd と .htaccess をドメイン直下 ( index.php と同階層 ) にアップロードしたのですが、https://example.com/adminmugicha (管理画面) にアクセスすると普通に読めてしまい、ベーシック認証を求めるアラートは出てきません。
.htpasswd
adminmugicha:U2SCtaoNuHzII
.htaccess
<Files admin.php> AuthType Basic AuthName "adminmugicha" AuthUserFile "/home/c1111111/public_html/example.com/.htpasswd" require valid-user </Files> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L]
試したこと(1)
ファイル指定(<Files admin.php>)をやめて次のようにして、同じように https://example.com/adminmugicha (管理画面) にアクセスすると、ブラウザはずっと読み込み中 (タブがぐるぐる) となりました。
.htaccess
AuthType Basic AuthName "adminmugicha" AuthUserFile "/home/c1111111/public_html/example.com/.htpasswd" require valid-user RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L]
試したこと(2)
index.php を次のようにして確認しましたので、フルパスはあっていると思います。
index.php
php
1<?php 2echo __FILE__; 3 4/* 5この echo の結果↓ 6/home/c1111111/public_html/example.com/index.php 7*/
補足情報
.htpasswd の情報は次のサイトを使って、
https://www.luft.co.jp/cgi/htpasswd.php
次の入力で生成しました。
ID:adminmugicha
Password:famima
以上の内容について、どこに誤りがあるか?そしてどうすれば admin.php の実行でベーシック認証をかけることができるか?教えて頂けませんでしょうか…。
どうぞ宜しくお願い致します。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/11/12 18:57 編集