.htaccessリダイレクト設定の完全ガイド

Share:

.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]

仕組み

  1. RewriteEngine On — URL書き換えエンジンを有効化
  2. RewriteCond %{HTTPS} off — HTTPSでないアクセスを条件に指定
  3. RewriteRule — HTTPSのURLに301リダイレクト

301(恒久的リダイレクト) を使用することで、SEO評価がリダイレクト先に引き継がれます。302(一時的リダイレクト)では評価が引き継がれないため注意してください。

www有無の統一

www.example.comexample.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年変更頻度が低い
CSS1ヶ月デザイン変更時にURLを変えて対応
JavaScript1ヶ月バージョニングで対応
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-OptionsMIMEタイプスニッフィング
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 を作成・更新できます。

あわせて読みたい

Zeronova avatar

Zeronovaゼロノバ

Product Manager / AI-Native Builder

BtoB/BtoC双方で19年以上のPdM経験を持つ開発者。フリーランス・副業クリエイターが本業に集中できるツールを開発。