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

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

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

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

Q&A

解決済

2回答

536閲覧

phpでディレクトリにアクセス制限をしたい。

odakyutetu

総合スコア85

PHP

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

0グッド

0クリップ

投稿2021/04/14 13:37

やりたいこと

リンクの記事に沿ってディレクトリ制限をphpで制御する方法が掲載されていたので自分もさっそくやってみたのですが、

Not Found The requested URL /test/access.php/test.jpg was not found on this server. ]

と出てしまいました。
.htaccessには、

Action image/jpeg /test/access.php

と書きました。
phpには、

php

1 $filenames="test/".basename($_SERVER['SCRIPT_NAME']); 2 header('Content-type: image/jpeg'); 3 readfile($filenames); 4

と書いたのですが、

Not Found The requested URL /test/access.php/public/test/test.jpg was not found on this server.

と意味わからないリンクに飛ばされてしまっています。
どのようにすればよいでしょうか。

ちなみにtestディレクトリにaccess.php と test.jpgを配置しております。

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

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

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

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

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

guest

回答2

0

ベストアンサー

Web サーバー側の PATH_INFO の設定あたりで動作が変わりそうなコードですね。

お使いのサーバーは PATH_INFO が有効になっているみたいですので、

$filenames="test/".basename($_SERVER['PATH_INFO']);

のように変えるとどうなりますか?

$_SERVER の「PATH_INFO」より

'PATH_INFO'
実際のスクリプトファイル名とクエリ文字列の間にある、クライアントが提供するパス名情報。 たとえば、現在のスクリプトに http://www.example.com/php/path_info.php/some/stuff?foo=bar という URL でアクセスしていた場合の $_SERVER['PATH_INFO'] は /some/stuff となります。

投稿2021/04/19 21:47

CHERRY

総合スコア25216

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

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

0

サーバの階層がどうなっているのかわからないので、何が正しいのかわかりませんが、

やりたいことがいまいち飲み込めません。

/test 配下に置かれた、jpeg ファイルを読み込む時に、/test/access.php を実行して、

>$filenames="test/".basename($_SERVER['SCRIPT_NAME']);

相対パスなので、説明を信じると、/test/test/test.jpg を読み込むことなっていませんか?

投稿2021/04/14 15:18

nfox

総合スコア231

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

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

odakyutetu

2021/04/19 14:28

要は、.htaccessの Actionを使用して、画像フォルダにアクセスがあった時にログインしているかを確認するためにphpの処理をとおそうとおもっています。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.38%

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

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

質問する

関連した質問