
初心者でも分かるHtaccess
投稿日: 2025-07-13 | カテゴリ: 開発.htaccess
の設定を怠ったために「顧客リストのCSVファイル」が、
インターネット検索でヒットしてしまうという痛恨のミスが発生しました。
もしあなたのWebサイトにも同様の設定漏れがあったら…想像するだけでゾッとしますよね。
そこでこの記事では、ApacheでWebサーバーを立ち上げた直後に必ず設定しておくべき .htaccess
の基本項目をわかりやすくまとめました。
後回しにして「やらかす前」に、今すぐ設定してしまいましょう。
まずは.htaccessよりもhttpd.confでの設定を検討すること
Apacheは .htaccess
よりもサーバー全体の設定ファイルである httpd.conf
の設定を優先的に読み込みます。
以下の理由から、可能ならhttpd.conf
で設定することが推奨されます。
.htaccess
はリクエストごとにファイル読み込みが発生し、パフォーマンスが低下する可能性がある。- サイト全体に統一された設定を一括で適用できる。
- 設定ミスの範囲を管理しやすい。
とはいえ、共有レンタルサーバーや管理権限が限られた環境では .htaccess
の利用が必須となります。
.htaccess
とは?
.htaccess
(ドットエイチティーアクセス)はApacheで使われる、ディレクトリ単位の設定ファイルです。
- サーバー全体の設定ファイル(
httpd.conf
)が編集できない環境でよく利用されます。 - WordPressや他のCMSで一般的に使われ、URLの書き換えやアクセス制御などを簡単に実現可能。
- 特定のフォルダ毎に動作を切り替えたい場合に便利。
とりあえず最低限、必ず設定しておきたい3つのポイント
①ディレクトリのファイル一覧表示の無効化
# ディレクトリのファイル一覧表示を無効化
Options -Indexes
Apacheのデフォルト設定では、index.html や index.php といったインデックスファイルが存在しないディレクトリにアクセスがあった場合、そのディレクトリ内のファイル一覧を表示してしまいます。
例)
https://example.com/img/
このようにimgフォルダにインデックスファイルがないと、中の画像やPDF、CSVなどのファイルが丸見えになる危険があります。 これが個人情報や社内資料だったら…考えただけで冷や汗が出ますよね。 まあそんな貴重情報をWebサーバにおいておくなと言いたいですが。
この設定は静的ファイルを置いているディレクトリ(例:public/やimg/)に設置するか、上位ディレクトリに置くと一括で効きます。
②URLの正規化(wwwあり → wwwなり)
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
RewriteRule ^(.*)$ https://example.com/$1 [L,R=301]
サイトのURLは「wwwあり」「wwwなし」のどちらかに統一しましょう。 wwwなしのほうが最近のトレンドで、SEO上も有利と言われています。
URLを統一しないと、同じコンテンツが複数のURLで存在することになり、検索エンジンからの評価が分散してしまいます。 ただし、技術的にサブドメインとして分離したい場合は「wwwあり」を選択するケースもあります。
③HTTP → HTTPS へのリダイレクト設定
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
セキュリティとSEOの観点から、HTTPでのアクセスは必ずHTTPSにリダイレクトしましょう。 未対応の場合、通信が暗号化されず安全性が損なわれるだけでなく、検索順位の低下にもつながります。
まとめ
これらの設定はマストなので、すぐに設定してセキュリティ事故のリスクをゼロに近づけましょう。