Zenn
💡

Web上からページを隠す。.htaccessファイルについて

に公開

はじめに

私は先日レンタルサーバーを利用して、Webサイト、Webアプリケーションを作成し始めたことで、エンジニアとしての階段を一段上ったわけですが、こんな疑問が上がった。見て欲しくないファイルってどうすんの?

説明

どういうことかというと、

ファイル構成
project
    |--index.html
    |--api/
    |--db/
        |--database.php
        |--config.php

/db/database.phpはデータベースの諸々が書かれているファイルだが、config.phpにはデータベースの設定が書かれている。以下のような内容である。

config.php
define('HOST_NAME', 'localhost');
define('DB_NAME', 'database');
define('USER_NAME', 'jhon');
define('PASSWORD', 'qwerty');

といった具合に大事な情報が丸見えになっている。このままでは/project/db/config.phpとurlを入力していくと、すべて見ることができる。

.htaccessの登場

そんなとき、あなたのサーバーがApacheであるなら、隠したいファイルの同じ階層に.htaccessという隠しファイルを作ればいい。

シン・ファイル構成
project
    |--index.html
    |--api/
    |--db/
        |--database.php
        |--config.php
        |--.htaccess

そして.htaccessのファイルには

.htaccess
Require all denied

と記述しましょう。Apacheのバージョンが低いとコードが違うらしいので、該当する場合は気をつけてください。

効果

/project/db/config.phpにアクセスすると、成功していればHTTPのエラーコード403が出力されているはずです。お気づきかもしれませんが、同じ階層のdatabase.phpもアクセスできなくなるので、見せたいファイルと見せたくないファイルの構成には気をつけましょう

終わり

以上が見せたくないファイルの隠し方でした。しかし、この隠す方法は大規模なプロジェクトには向いてないのでご注意を。.envを作るらしいので調べてみてください。

Discussion

ログインするとコメントできます