Title Image

初心者でも分かるHtaccess

投稿日: 2025-07-13 | カテゴリ: 開発

.htaccess の設定を怠ったために「顧客リストのCSVファイル」が、 インターネット検索でヒットしてしまうという痛恨のミスが発生しました。
もしあなたのWebサイトにも同様の設定漏れがあったら…想像するだけでゾッとしますよね。

そこでこの記事では、ApacheでWebサーバーを立ち上げた直後に必ず設定しておくべき .htaccess の基本項目をわかりやすくまとめました。

後回しにして「やらかす前」に、今すぐ設定してしまいましょう。


まずは.htaccessよりもhttpd.confでの設定を検討すること

Apacheは .htaccess よりもサーバー全体の設定ファイルである httpd.conf の設定を優先的に読み込みます。
以下の理由から、可能ならhttpd.confで設定することが推奨されます。

とはいえ、共有レンタルサーバーや管理権限が限られた環境では .htaccess の利用が必須となります。


.htaccess とは?

.htaccess(ドットエイチティーアクセス)はApacheで使われる、ディレクトリ単位の設定ファイルです。


とりあえず最低限、必ず設定しておきたい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にリダイレクトしましょう。 未対応の場合、通信が暗号化されず安全性が損なわれるだけでなく、検索順位の低下にもつながります。

まとめ

これらの設定はマストなので、すぐに設定してセキュリティ事故のリスクをゼロに近づけましょう。