[.htaccess]PHPのクラスファイルにブラウザでアクセスしないで!

PHPのクラスファイルに直接ブラウザでアクセスされたらどうすれば良いのかなぁ。

読み込み元ファイルで変数を用意して、それがnullだったらheaderで……んー、全ファイルに書くのはちょっと違うかなぁ。

っという訳で、クラスファイル用のフォルダを作って.htaccessでアクセスを拒否する事にしてみました。

まずはPHPのファイルを用意します

まずはクラスファイル。

<?php
class Test
{
 public function echoStr()
 {
 echo "クラスファイルだよ!";
 }
}
?>

続いてそれをincludeするファイル。

<?php
include(dirname(__FILE__)."/class/class.php");
$test = new Test();
$test->echoStr();
?>

クラスファイルをインクルードして、関数を実行して、文字列をechoするだけの簡単なお仕事です。

クラスファイルはbase.phpの同一階層にあるclassフォルダ内に存在します。

実行すると、正常に動きました。

クラスファイルだよ!

classフォルダに.htaccessを設置する

アクセスしてほしくないclassフォルダに.htaccessを設置してみます。

deny from all

これで全てのファイルにブラウザでアクセスできなくなります。ブラウザでclassフォルダに存在するクラスファイルを表示しようとすると、403エラーが表示されました。

base.phpにアクセスしても、base.phpのフォルダではアクセス拒否をしていないので、正常に表示されます。

phpでのincludeはブラウザでのアクセスではないので、base.phpを経由してclass.phpを読み込む事ができます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>