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

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

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

BASICとは、手続き型言語の一つ。英語に準した簡易な記述になっており、基本的には初心者向けのプログラミング言語です。1970年代以降のコンピュータでよく使用された言語で、様々な拡張を加え現在も利用されています。

PHP

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

.htaccess

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

Q&A

1回答

884閲覧

ベーシック認証をかけたいが、何も起こらないか、読み込みのままになってしまう

kasumisou

総合スコア9

BASIC

BASICとは、手続き型言語の一つ。英語に準した簡易な記述になっており、基本的には初心者向けのプログラミング言語です。1970年代以降のコンピュータでよく使用された言語で、様々な拡張を加え現在も利用されています。

PHP

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

.htaccess

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

0グッド

0クリップ

投稿2022/11/12 09:55

編集2022/11/12 17:18

質問概要

ベーシック認証をかけることができません。
以下の誤りをご指摘頂けませんでしょうか。

現状

まず 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 の実行でベーシック認証をかけることができるか?教えて頂けませんでしょうか…。

どうぞ宜しくお願い致します。

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

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

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

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

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

guest

回答1

0

Rewrite の書き方で無限ループが起きてたりしないでしょうか。
Rewriteの指定を消すとどうなりますか?

投稿2022/11/12 11:34

yuma.inaura

総合スコア1453

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

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

kasumisou

2022/11/12 18:57 編集

Rewriteの指定を消すと、https://example.com/adminmugicha は Not Found になるので https://example.com で試し、質問と同じでした。 つまりファイル指定(<Files admin.php>)があると普通に表示され、ファイル指定をやめるとぐるぐるのままでした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問