.htaccessの構文ミスでサイトが真っ白になったことはありませんか?
.htaccess はApacheサーバーの強力な設定ファイルですが、たった1行の構文ミスでサイト全体が500エラーになるリスクがあります。
リダイレクト設定やキャッシュ制御をしたいのに、構文を調べながら手書きするのは非効率で危険です。とくにレンタルサーバーでの設定は、コマンドラインが使えない環境も多く、慎重さが求められます。
この記事では、.htaccess の主要な設定パターンをコード例つきで解説し、.htaccessジェネレーターを使って安全にコードを生成する方法を紹介します。
.htaccessとは — 基本を押さえる
.htaccess(Hypertext Access)は、Apache Webサーバーのディレクトリ単位の設定ファイルです。サーバーの設定ファイル(httpd.conf)を直接編集できない環境でも、ディレクトリごとにアクセス制御やリダイレクトを設定できます。
使える環境・使えない環境
| サーバー | .htaccess対応 |
|---|---|
| Xserver | 対応 |
| さくらのレンタルサーバー | 対応 |
| ロリポップ | 対応 |
| ConoHa WING | 対応 |
| Nginx | 非対応 |
| Vercel | 非対応 |
| Netlify | 非対応(_redirectsファイルで代替) |
レンタルサーバーの多くはApacheを採用しているため、WordPressサイトやPHP製のWebサイトでは .htaccess が標準的な設定手段です。
配置場所と優先順位
.htaccessはWebサイトのルートディレクトリに配置する- サブディレクトリにも配置可能で、親ディレクトリの設定を上書きできる
- ファイル名の先頭のドット(
.)は隠しファイルを意味するため、FTPクライアントで「隠しファイルを表示」する必要がある
HTTPS強制リダイレクト — URLの正規化
HTTP でアクセスされた場合に HTTPS へリダイレクトする設定です。SEO上最も重要な設定の一つで、URLの正規化により検索エンジンの評価を一本化できます。
コード例
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
仕組み
RewriteEngine On— URL書き換えエンジンを有効化RewriteCond %{HTTPS} off— HTTPSでないアクセスを条件に指定RewriteRule— HTTPSのURLに301リダイレクト
301(恒久的リダイレクト) を使用することで、SEO評価がリダイレクト先に引き継がれます。302(一時的リダイレクト)では評価が引き継がれないため注意してください。
www有無の統一
www.example.com と example.com の両方でアクセスできる状態は、検索エンジンに重複コンテンツと判断される原因になります。どちらか一方に統一しましょう。
wwwなしに統一する場合
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
wwwありに統一する場合
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]
HTTPS強制と組み合わせる
実際の運用では、HTTPS強制とwww統一を1つの .htaccess にまとめて記述します。.htaccessジェネレーターでは両方を同時に設定でき、正しい記述順序で出力されます。
301リダイレクト — URL変更時のSEO評価引き継ぎ
ページのURLを変更した場合、旧URLから新URLへの301リダイレクトを設定します。設定しないと、旧URLのSEO評価が失われ、検索順位が下がります。
個別ページのリダイレクト
Redirect 301 /old-page.html https://example.com/new-page/
ディレクトリごとのリダイレクト
RedirectMatch 301 ^/old-directory/(.*)$ https://example.com/new-directory/$1
パターンマッチによるリダイレクト
RewriteEngine On
RewriteRule ^blog/(.*)\.html$ /articles/$1/ [R=301,L]
この例では /blog/my-post.html を /articles/my-post/ にリダイレクトします。
リダイレクト設定の注意点
| 注意点 | 説明 |
|---|---|
| リダイレクトチェーン | A→B→C のように複数回リダイレクトしない。直接 A→C に設定する |
| リダイレクトループ | A→B→A のような循環が起きないか確認する |
| ステータスコード | SEO評価の引き継ぎには必ず301を使う。302は一時的な移動 |
| 末尾スラッシュ | /page と /page/ は別URLとして扱われる |
ブラウザキャッシュ制御 — 表示速度の改善
ブラウザキャッシュを設定すると、再訪問時にサーバーからファイルを再ダウンロードせず、ローカルキャッシュを使用するため表示速度が大幅に改善します。
コード例
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType image/webp "access plus 1 year"
ExpiresByType image/svg+xml "access plus 1 year"
ExpiresByType text/css "access plus 1 month"
ExpiresByType application/javascript "access plus 1 month"
ExpiresByType text/html "access plus 0 seconds"
</IfModule>
推奨キャッシュ期間
| ファイルタイプ | キャッシュ期間 | 理由 |
|---|---|---|
| 画像(JPEG, PNG, WebP) | 1年 | 変更頻度が低い |
| CSS | 1ヶ月 | デザイン変更時にURLを変えて対応 |
| JavaScript | 1ヶ月 | バージョニングで対応 |
| HTML | キャッシュしない | コンテンツの更新を即時反映 |
キャッシュ設定は Core Web Vitals の LCP 改善にも効果があります。ページ速度チェッカーで改善前後のスコアを比較してみてください。
セキュリティヘッダー — 攻撃からサイトを守る
.htaccess でセキュリティヘッダーを設定すると、一般的なWebセキュリティの脅威を防止できます。
推奨するセキュリティヘッダー
<IfModule mod_headers.c>
Header set X-Content-Type-Options "nosniff"
Header set X-Frame-Options "SAMEORIGIN"
Header set X-XSS-Protection "1; mode=block"
Header set Referrer-Policy "strict-origin-when-cross-origin"
</IfModule>
各ヘッダーの効果
| ヘッダー | 防止する脅威 |
|---|---|
| X-Content-Type-Options | MIMEタイプスニッフィング |
| X-Frame-Options | クリックジャッキング(iframeへの埋め込み) |
| X-XSS-Protection | 反射型XSS攻撃 |
| Referrer-Policy | リファラーからの情報漏洩 |
注意: iframe埋め込みが必要なサイト(YouTube埋め込み等)では
X-Frame-Optionsの設定に注意してください。SAMEORIGINは同一オリジンからの埋め込みのみ許可します。
.htaccessジェネレーターで安全にコードを生成する
ここまで紹介した設定を手動で記述するのは、構文ミスのリスクがあります。
.htaccessジェネレーターでは、GUIでチェックボックスを選ぶだけで、正しい構文の .htaccess コードを生成できます。
使い方
Step 1: 必要な設定カテゴリ(HTTPS強制、www統一、キャッシュ、セキュリティ等)をチェックボックスで選択する
Step 2: 各設定の詳細(リダイレクト先URL、キャッシュ期間等)をGUIでカスタマイズする
Step 3: 生成されたコードをコピーまたはダウンロードし、サーバーに配置する
メリット
- 構文ミスの防止: 正しい構文で自動生成されるため、500エラーのリスクが低い
- 設定の組み合わせ: HTTPS強制 + www統一 + キャッシュ + セキュリティを一括生成
- 学習コスト削減: Apache の mod_rewrite 構文を覚えなくても設定可能
.htaccess設定のベストプラクティス
設定前のバックアップ
.htaccess を編集する前に、必ず現在のファイルをバックアップしてください。構文ミスでサイトが500エラーになった場合、バックアップから復元できます。
設定の記述順序
# 1. リダイレクト設定(HTTPS強制、www統一)
# 2. アクセス制御
# 3. キャッシュ制御
# 4. セキュリティヘッダー
# 5. カスタムエラーページ
上から順に処理されるため、リダイレクト設定を先頭に配置するのが一般的です。
robots.txtとの連携
.htaccess でリダイレクトを設定したら、robots.txtジェネレーターで robots.txt も更新しましょう。サイトマップURLが変更された場合は Sitemap: ディレクティブの修正も必要です。
まとめ
.htaccess で設定すべき主要な項目:
| 設定 | SEO効果 | 優先度 |
|---|---|---|
| HTTPS強制リダイレクト | URLの正規化 | 高 |
| www有無の統一 | 重複コンテンツ回避 | 高 |
| 301リダイレクト | SEO評価の引き継ぎ | 高 |
| ブラウザキャッシュ | 表示速度の改善 | 中 |
| セキュリティヘッダー | 脅威の防止 | 中 |
.htaccessジェネレーターを使えば、これらの設定を構文ミスなく一括で生成できます。サーバー設定に不慣れな方でも、安全に .htaccess を作成・更新できます。
あわせて読みたい
- Web制作者のためのSEO設定ツール完全ガイド — .htaccessを含む10のSEOツールの使い方
- Webサイトの表示速度を改善する方法 — キャッシュ設定を含む速度改善の実践ガイド
- Webサイト公開前に確認すべき5つのチェックポイント — 公開前の総合チェックリスト
Zeronova(ゼロノバ)
Product Manager / AI-Native Builder
BtoB/BtoC双方で19年以上のPdM経験を持つ開発者。フリーランス・副業クリエイターが本業に集中できるツールを開発。