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

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

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

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

PHP

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

.htaccess

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

受付中

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

kasumisou
kasumisou

総合スコア9

BASIC

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

PHP

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

.htaccess

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

1回答

0グッド

0クリップ

245閲覧

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

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

以下のような質問にはグッドを送りましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

グッドが多くついた質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

回答1

0

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

投稿2022/11/12 11:34

yuma.inaura

総合スコア1296

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

下記のような回答は推奨されていません。

  • 間違っている回答
  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

回答へのコメント

kasumisou

2022/11/12 18:57 編集

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

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

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

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

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

ただいまの回答率
86.12%

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

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

質問する

関連した質問

同じタグがついた質問を見る

BASIC

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

PHP

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

.htaccess

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