ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
Options -Indexes とは
Apache HTTP Server には autoindex という機能があり、ディレクトリにアクセスしたとき index ファイル(index.html 等)が無い場合、ディレクトリ内のファイル一覧を HTML として返します。便利な機能ですが、公開サーバでは意図しない情報漏洩の元になります。
Options -Indexes は autoindex を無効化するディレクティブで、セキュリティ上ほぼ必須の設定です。
なぜリスクなのか
autoindex が有効だと、次のようなものが意図せず公開される可能性があります。
- バックアップファイル(
config.php.bak、.sql) - ログファイル(
error.log) - 設定ファイル(
.envのうっかり配置) - 開発中のページ(リンク非公開で URL 直打ちでなければ見えないつもりのもの)
- ディレクトリ構造そのもの(攻撃の手がかり)
設定方法
.htaccess での設定
多くの共有レンタルサーバでは .htaccess をディレクトリに置くだけで設定できます。
# /var/www/html/.htaccess
Options -Indexes
httpd.conf(または conf.d)での設定
自前で Apache を運用する場合は、メイン設定ファイルに書きます。
<Directory "/var/www/html">
Options -Indexes
AllowOverride All
Require all granted
</Directory>
全サイトに一括適用
# httpd.conf のトップで
<Directory />
Options -Indexes
AllowOverride None
Require all denied
</Directory>
# その上で公開ディレクトリだけ別途許可
<Directory "/var/www/html">
Options -Indexes
Require all granted
</Directory>
Options ディレクティブの記法
| 記法 | 意味 |
|---|---|
Options Indexes | 有効化(上書き設定) |
Options -Indexes | 無効化(差分で打ち消し) |
Options +Indexes | 有効化(差分で追加) |
Options All -Indexes | All - Indexes |
Options None | 全てのオプションを無効化 |
+ / - は前の設定との差分で適用、付けないとフル上書きになる点に注意。継承の挙動が変わるので、+ / - を付ける運用が推奨です。
設定後の挙動
autoindex を無効化した状態で index.html 等が無いディレクトリにアクセスすると、Apache は403 Forbidden を返します。
$ curl -I http://example.com/somedir/
HTTP/1.1 403 Forbidden
Server: Apache/2.4.x
404 を返したい場合
403 だと「ディレクトリは存在するがアクセス禁止」と示してしまうため、404 Not Found を返したい場合は ErrorDocument で差し替えるか、RewriteRule で 404 にします。
# 403 を 404 ページ表示に差し替え
ErrorDocument 403 /404.html
# 完全に 404 として返したい場合
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule .* - [R=404,L]
一覧表示を残したい特定ディレクトリ
ファイル共有用などであえて一覧表示したいディレクトリがある場合、サイト全体で -Indexes としつつ、そのディレクトリだけ +Indexes を設定できます。
<Directory "/var/www/html">
Options -Indexes
</Directory>
<Directory "/var/www/html/downloads">
Options +Indexes
</Directory>
その他のセキュリティオプション
| 設定 | 効果 |
|---|---|
ServerSignature Off | エラー画面の Apache バージョン非表示 |
ServerTokens Prod | レスポンスヘッダの Apache バージョン詳細を隠す |
TraceEnable Off | TRACE メソッド無効化 |
Options -ExecCGI | CGI 実行禁止 |
Options -FollowSymLinks | シンボリックリンクの追跡禁止 |
設定の確認方法
# .htaccess を有効にする AllowOverride の確認
sudo apachectl -t # 構文チェック
sudo apachectl -S # VirtualHost 一覧
sudo apachectl -M | head # ロード中モジュール
# 設定変更後はリロード
sudo systemctl reload httpd # RHEL 系
sudo systemctl reload apache2 # Debian / Ubuntu
autoindex 自体のカスタマイズ
あえて autoindex を使う場合、見た目をカスタマイズできます。
<Directory "/var/www/html/files">
Options +Indexes
# ファイル名 / サイズ / 日付 等の表示制御
IndexOptions FancyIndexing FoldersFirst NameWidth=* HTMLTable
# 一覧から除外するファイル
IndexIgnore .htaccess .htpasswd *.bak
# ヘッダ / フッタの HTML
HeaderName /header.html
ReadmeName /footer.html
</Directory>
FAQ
Q: 設定したのに一覧が出るのはなぜ?
A: AllowOverride が None だと .htaccess の Options が無視されます。AllowOverride All または Options を含む値を指定する必要があります。
Q: nginx で同じことは?
A: nginx はデフォルトで autoindex 無効。明示的に有効化したいなら autoindex on;。
関連
- httpd.conf のファイルの場所 — メイン設定ファイル
- AllowOverride — .htaccess の有効範囲
- .htaccess — ディレクトリ単位設定
- mod_autoindex — Apache のディレクトリ一覧モジュール
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
- 非推奨である理由(性能問題)
- Options -Indexes
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック NEW 2026-06-22 12:34:44
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?