Balbas Code

サーバーに配置する .htaccessファイルとは?

公開日: 2025-08-31 03:15:27

今回はサーバーにおけるアクセス時の動作を設定する、.htaccessファイルについて記事を書いていきます。


.htaccess とは?(初心者向け解説)


「.htaccess(エイチティーアクセス)」は、Apache(アパッチ)というWebサーバーで使える設定ファイルの一種です。通常、サーバー全体の設定は管理者だけが編集できる httpd.conf というファイルに書かれます。しかし共用サーバーでは利用者がそれを触れません。


そこで用意されているのが .htaccess ファイルです。これをサイトのフォルダに置くと、そのフォルダ以下にだけ有効な設定を上書きできます。つまり「自分のサイトだけのルール」を定義できる便利な仕組みです。


 


できること(例)




  • リダイレクトhttp://https:// に強制、または wwwあり/なし を統一




  • アクセス制御:特定のIPだけアクセス禁止、パスワード認証をかける




  • エラーページ:404(ページが見つからない)をオリジナルページに差し替え




  • セキュリティ強化.env.git フォルダを外部から見えないようにする




  • 高速化:画像やCSSをブラウザにキャッシュさせたり、圧縮して転送量を減らす




  • ルーティング:WordPressやReactなどのアプリに必要なURL振り分け




注意点




  • 毎回リクエスト時に読み込まれるので、設定が多すぎるとサーバーが遅くなることがあります。




  • サーバーによっては .htaccess の利用自体を制限している場合があります。




  • 記述を間違えると「500 Internal Server Error」になり、サイトが真っ白になります。必ずバックアップを取り、少しずつ試すことが大切です。




 


配置としてはサーバー上のルートディレクトリ(index.html、index.phpがある階層)に配置します。


htaccess1
基本的には、自動で作られないので新規ファイルとして作成する必要があります。


 


下記がソースコード例です。


# 文字コードをUTF-8に
AddDefaultCharset UTF-8

# エラーページの設定
ErrorDocument 404 /404.html
ErrorDocument 403 /403.html

# ディレクトリリスト表示を無効化
Options -Indexes

# HTTPをHTTPSへリダイレクト
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

これだけでも




  • ページが見つからないときは自作404ページに飛ばす




  • ディレクトリ中身が丸見えにならないようにする




  • サイトを常にHTTPSで表示する




といった最低限の安全対策ができます。


今回私の場合はブログを1階層下に移動したことで、もともとのURLが404エラーになってしまい、サーチコンソールにエラーページとして表示されていました。厄介なのは、その古いURLがすでにGoogleに登録されているため、こちらでURLを変えてもすぐには反映されないという点です。そこで、.htaccessでリダイレクト設定を行い、旧URLから新しいURLへ正しく誘導するようにしました。URLを変更したときにこの対応をしておかないと、Googleの評価にも悪影響が出てしまうのだと実感しました。
なお、URLを変更した際のリダイレクトの設定は半年〜1年くらいは残しておくことが推奨されています。
簡単にURLは変更できますが、GoogleにすでにURLが登録されてしまっているという点には注意が必要です。