留意事項
- .htaccessはWebサイト全体に影響を及ぼす可能性があります。必要に応じて適用前にバックアップをとるなどの対策のうえ、充分に動作確認を行なってください。
- その他の記述やファイルの組み合わせによって、このほかの動作をする場合があります。
弊社では個別の状況に対しての回答は行なっておらず、ご担当のWeb制作会社様にご相談くださいますようお願い致します。
.htacessで指定IPアドレスのみアクセス許可する場合
設定方法
.htaccess で、SetEnvIf と allow を利用することが可能であり、「11.1.111.11」と「222.222.222.222」のアクセスを許可するには以下のとおりです。(IPアドレスの判定方法について)
# 「11.1.111.11」と「222.222.222.222」のアクセスを許可
SetEnvIf X-Forwarded-For "^11\.1\.111\.11$" allowed_ip
SetEnvIf X-Forwarded-For "^222\.222\.222\.222$" allowed_ip
allow from env=allowed_ip
インデックスファイルを指定し、ディレクトリリスティングを無効する(index of/ で ディレクトリ直下のファイル一覧を見えなくさせる)
ディレクトリリスティングとは
URLの末尾が「/」(=ディレクトリ直下)を指定した時、その階層にあるファイルやディレクトリを一覧で表示する機能をディレクトリリスティングといいます。
非公開が望ましいディレクトリやファイルを置いてある場合、ディレクトリリスティングの無効化を推奨します。
設定方法
.htaccessに以下を記述します。
以下の記述では、デフォルトのページとして index.cfm>index.php>index.html という優先順位が指定されていますが、任意に書き換えることが可能です。
これにより、指定したディレクトリ(dir/)にアクセスした場合、各種indexページの優先順位が高いものを表示し、ない場合は404(Forbidden)ページを表示します。
#ディレクトリリスティングの無効化
<Files ~ "^.(htaccess|htpasswd)$">
deny from all
</Files>
DirectoryIndex index.cfm index.php index.html .ht
もっと単純な指定として、.htaccess で制御する場合に以下の記述方式もありますが、予めApache側(httpd.conf)で AllowOverride Options を設定(=.htaccessを使った設定の上書きを許可)する必要があります。
Options -Indexes
※ AllowOverride Options が未設定のうえでこれを指定すると、本来なら正常に表示されるURLを含めて「Internal Server Error」が表示されます。