.htaccess(ハット・アクセス)はApacheウェブサーバーの設定をディレクトリ単位で変更できるファイルです。国内の多くのレンタルサーバー(XServer・ロリポップ・さくら等)はApacheベースのため、HTTPS強制・Basic認証・キャッシュ設定など頻繁に必要になる設定を手軽に適用できます。このツールは使いたい設定をチェックで選んでパラメータを入力するだけで、コピー可能な.htaccessコードを生成します。
HTTPS強制リダイレクトの仕組み
HTTPS強制は、HTTPでアクセスしてきたユーザーを自動的にHTTPSへ転送する設定です。ApacheのRewriteEngineを使い、%{HTTPS}がoffの場合に301リダイレクトを返します。
301は「永続的なリダイレクト」を意味し、ブラウザと検索エンジンが新しいURLを本来のURLとして学習します。302(一時的なリダイレクト)ではSEO評価が引き継がれないため、HTTPSへの移行では必ず301を使います。
XServerでは管理画面の「SSL設定」でHTTPSリダイレクトを有効化できますが、.htaccessで直接設定したい場合や、サブディレクトリだけ制御したい場合にこのコードが役立ちます。RewriteEngineはサーバーによって既定でオンのことがあるため、重複して書くと設定が競合することがあります。その場合は既存の.htaccessと統合してください。
www統一(URL正規化)とSEO効果
「www.example.com」と「example.com」は技術的に別々のURLとして認識されます。どちらでもアクセスできる状態を放置すると、検索エンジンが同じコンテンツを異なるURLとして評価する「重複コンテンツ」問題が起きます。
通常はwwwありとwwwなしのどちらかに統一し、もう一方を301リダイレクトします。Google Search Consoleの「優先ドメイン」設定とあわせてどちらをメインにするかを決めてから.htaccessに反映させましょう。
このツールの「www統一」設定はnon-www → wwwへのリダイレクトです。逆(www → non-www)にしたい場合はRewriteCondの条件を%{HTTP_HOST} ^www\.に変え、転送先からwww.を外した形に書き換えます。
キャッシュ制御でページを高速化
CSS・JavaScript・画像などの静的ファイルをブラウザにキャッシュさせると、2回目以降のアクセスが大幅に速くなります。ExpiresActiveを使った設定では、ファイルの種類ごとにキャッシュの有効期限を指定します。
画像やCSSなど変更頻度の低いファイルは「access plus 1 year」(1年間)が定番です。ただしCSSやJavaScriptのURLをそのままにしてキャッシュを長くすると、ファイルを更新してもブラウザが古いバージョンを使い続けます。そのため本番環境ではファイル名にハッシュを含めてキャッシュを無効化する「キャッシュバスティング」と組み合わせるのが一般的です。
| ファイル種類 | 推奨キャッシュ期間 | 備考 |
|---|---|---|
| 画像(PNG/JPG/WebP) | 1年 | 変更が少ない |
| CSS・JavaScript | 1年 | ファイル名にハッシュを付けてキャッシュバスト |
| HTML | なし〜1時間 | コンテンツが変わりやすい |
| フォント(WOFF2) | 1年 | ほぼ変更しない |
Basic認証とディレクトリ保護
Basic認証はディレクトリにID/パスワードによるアクセス制限をかける仕組みです。開発中サイトの公開前チェックや、管理者向けページの一次保護によく使われます。
.htaccessには認証の種類・表示名・パスワードファイルのパスを書くだけで、実際のID/パスワードは別ファイル(.htpasswd)に記録します。.htpasswdはコマンドラインの「htpasswd -c .htpasswd ユーザー名」で生成するか、専用ジェネレーターで作成できます。.htpasswdはpublic_htmlより上のディレクトリ(Webからアクセスできない場所)に置くのが原則です。
「Options -Indexes」はディレクトリ内にindex.htmlがない場合にファイル一覧を表示させない設定です。設定なしのサーバーでは/images/などのURLでファイルがすべて見えてしまう危険があります。多くのサーバーはデフォルトで無効ですが、明示的に設定しておくと安心です。
IP制限とカスタムエラーページ
IP制限は特定のIPアドレスだけアクセスを許可する設定です。社内ネットワークや自分のIPだけに管理ページへのアクセスを絞りたい場合に便利です。「Order deny,allow」構文でまず全IPを拒否し、許可するIPだけAllow fromで明示します。IPアドレスはCIDR表記(例: 192.168.0.0/24)で範囲指定もできます。
カスタムエラーページはErrorDocumentディレクティブで設定します。404(ページが見つからない)や500(サーバー内部エラー)が発生したとき、サーバーのデフォルト画面ではなく自分でデザインしたHTMLページを表示できます。サイトのデザインに合わせたエラーページを用意しておくと、ユーザーが迷わず戻ってきやすくなります。
※ 生成されたコードはApache 2.x環境向けです。nginx・IISなど別サーバーでは別の設定ファイルが必要です。
※ Basic認証はHTTPS環境でのみ使用してください。HTTPでは通信内容が平文で流れるためパスワードが盗まれるリスクがあります。
※ 設定変更後は必ずブラウザでアクセスして動作を確認してください。記述ミスがあると500エラーになります。変更前にバックアップを取ることを推奨します。
よくある質問
Q .htaccessファイルの文字コードは何を使えばいいですか?
UTF-8(BOMなし)を使います。WindowsのメモはBOM付きで保存することがあるため、VSCodeやTerapad(BOMなしUTF-8設定)などのエディタを使うと安全です。
Q 設定を反映させるには何が必要ですか?
.htaccessはApacheが自動的に読み込むため、サーバーの再起動は不要です。ファイルを上書きアップロードするだけで即座に反映されます。ただし、サーバーのAllowOverrideがAllまたはFileInfoに設定されていないと機能しません。
Q 500エラーが出てしまいました。どうすれば直りますか?
.htaccessの記述ミスが最も多い原因です。バックアップを取ってから作業し、設定を1行ずつ確認してください。一時的に.htaccessの名前を変えてアクセスできるか確認するとミスの切り分けができます。
Q XServerで.htaccessを使うには?
XServerではpublic_html以下のディレクトリに.htaccessを置くだけで機能します。AllowOverrideはデフォルトでAllに設定されています。FTP(FileZilla等)またはXServerのファイルマネージャーからアップロードできます。
