.htaccessファイルとは?作り方や設置方法をご紹介します

.htaccessとは、Apache系Webサーバーでディレクトリ単位の挙動を制御できる設定ファイルです。

具体的には、アクセス制限、301リダイレクト、URLの正規化、BASIC認証、カスタムエラーページの表示などに使われます。Web担当者にとっては「少し触るだけでサイト全体に影響しうる」ファイルでもあるため、便利さと同時に慎重さが必要です。

とくに2026年時点のSEO実務では、URL統一や移転時の301設定、不要ファイルのインデックス制御など、.htaccessが関わる場面はまだ多くあります。一方で、Apache以外の環境では同じ書き方が通用しないため、まずは自社サーバーの前提確認が欠かせません。

このページでは、.htaccessでできること、基本的な書き方、設置場所、有効範囲、設定時の注意点までを実務目線で整理します。.htaccessを正しく扱いたい方は、ここからはじめていきましょう。

この記事の制作者
株式会社EXIDEA 代表取締役社長
小川 卓真
SEO歴20年。2006年にSEOツールの開発企業を共同創業して以来、SEOを軸にデジタルマーケティングに従事。2013年に「株式会社EXIDEA」を設立。現在はEXIDEAの代表取締役社長として、Webメディア事業、マーケティングDX事業、オールインワンSEOツール「EmmaTools」の事業に携わる。
執筆者の詳しいプロフィールはこちら
EmmaBlog執筆者

.htaccessとは

.htaccessは、Apache系Webサーバーで、特定ディレクトリ配下の動作を上書き・制御するための設定ファイルです。まず押さえたいのは、HTMLやCSSのように「ページを作るファイル」ではなく、サーバーの振る舞いを変えるファイルだという点です。

簡単に言い換えると、Webサイト内のページへのアクセス方法を管理し、見せたいURLへ誘導したり、見せたくない領域を制限したりするためのファイルです。

.htaccessが利用される代表例としては、301/302リダイレクト、404ページの指定、BASIC認証、IP制限、X-Robots-Tagの付与などが挙げられます。Googleの公式ドキュメントでも、Apache環境ではX-Robots-Tagの設定に.htaccessやhttpd.confを使えることが案内されています。
(参照:robots meta タグ、data-nosnippet、X-Robots-Tag の仕様

.htaccessを使用する条件

結論からいうと、すべてのWebサーバーで.htaccessが使えるわけではありません。確認すべきなのは「サーバーソフトウェア」と「利用権限」の2点です。

1つ目は、サーバーソフトウェアがApache系であることです。

Apache以外、たとえばNGINX中心の構成では、.htaccessに書いても反映されません。NGINXでは通常、サーバー全体の設定ファイル側で制御します。そのため、レンタルサーバーやクラウド環境を使っている場合は、管理画面やサポート情報でApache系かどうかを先に確認すると良いでしょう。

2つ目は、.htaccessの上書きが許可されていることです。Apache系であっても、AllowOverrideの設定やホスティング側の制限によって、.htaccessが無効化されているケースがあります。

実務上は、WordPressが動いているからといって必ず自由に.htaccessを触れるとは限りません。筆者の経験でも、共用サーバーでは「ファイルは置けるが一部ディレクティブは使えない」というケースがありました。まずはテスト環境で最小構成の設定から確認するのがおすすめです。

.htaccessで出来る5つのこと

.htaccessでよく使う機能は、「リダイレクト設定」「URLの正規化」「BASIC認証」「IP制限」「カスタム404ページの表示」の5つです。SEOと運用保守の両方に関わるため、用途ごとの違いを整理しておくと設定ミスを減らせます。

当社でも比較サイトや事業サイトの改修時には、まず「どのURLを残し、どのURLを301で寄せるか」を整理してから実装に入ります。.htaccessは便利ですが、設計なしで書き始めると後からチェーンリダイレクトや重複URLが増えやすいです。

リダイレクト設定

1つ目は、リダイレクト設定です。

ユーザーが旧URLや特定ディレクトリにアクセスした際に、別のURLへ自動転送できます。サイト移転、URL変更、httpからhttpsへの統一などで頻繁に使います。

リダイレクトには、恒久的な転送である301と、一時的な転送である302があります。SEO上、URL移転や正規URLへの統一では301または308のような恒久的リダイレクトが基本です。Googleも、可能であればサーバーサイドの恒久的リダイレクトを推奨しています。また、リダイレクトチェーンは避け、最終URLへ直接転送するのが望ましいとされています。
(参照:リダイレクトの設定方法
(参照:URL変更を伴うサイト移転

URLの正規化

2つ目は、URLの正規化です。

URLの正規化とは、同じ内容に見えるページが複数URLで存在する場合に、評価を集約したいURLへ統一することです。SEOでは非常に重要で、放置すると被リンク評価や内部リンク評価が分散しやすくなります。

URLの正規化をすべきページ
  • wwwの有無(https://www.abc.com と https://abc.com)
  • index.htmlの有無(https://www.abc.com と https://www.abc.com/index.html)
  • httpとhttps(http://www.abc.com と https://www.abc.com)
  • パラメータ付きURL(https://www.abc.com と https://www.abc.com/?utm_source=x)

たとえば、ECサイトで色違いの靴ページに計測用パラメータが大量についたり、店舗ページでindex.htmlあり・なしが混在したりすると、意図せず重複URLが増えます。こうしたケースでは、.htaccessによる転送とcanonicalの併用判断が必要です。

検索順位が伸びない原因がURL重複にあることも少なくありません。もしインデックスや順位の不調も気になる場合は、Googleにインデックスされない場合の理由と対策方法検索順位が上がらない理由とは?20の原因と対策も参考にしてみてください。

BASIC認証

3つ目は、BASIC認証です。

BASIC認証とは、特定ページやディレクトリにユーザー名とパスワードによるアクセス制限をかける方法です。開発環境、会員限定資料、社内確認ページなどで使われます。

ただし、SEOの観点では公開予定ページに長期間BASIC認証をかけたままにすると、検索エンジンもアクセスできません。公開タイミングの管理が重要です。実務上は、公開前の確認環境ではBASIC認証、本番公開後は解除してnoindexやcanonicalなど別の制御へ切り替える運用が安全です。

IP制限

4つ目は、IP制限です。

IP制限は、特定のIPアドレスからのアクセスだけを許可、または拒否する設定です。管理画面の保護や、不審アクセスへの暫定対応で使われます。

ただし、近年は固定IPでない回線やCDN、WAF、VPN経由のアクセスも多く、IP制限だけで運用すると正規ユーザーまで弾いてしまうことがあります。筆者の経験では、社内確認用ページをIP制限だけで守ろうとして、テレワーク時に閲覧できなくなるトラブルが起きやすいです。BASIC認証やWAF設定と組み合わせて考えるほうが実務的です。

カスタム404エラーページの表示

カスタム404への転送処理

5つ目は、カスタム404ページの表示です。

削除済みページや存在しないURLにアクセスされた際、サーバー標準の404表示ではなく、自社で用意した404ページを返せます。ユーザー導線を残せるため、離脱を減らしやすくなります。

ただし重要なのは、見た目だけ404ページにして、HTTPステータスは200を返す状態を避けることです。いわゆるソフト404になると、SEO上の評価やクロール効率に悪影響が出ることがあります。404ページは「案内を丁寧にしつつ、ステータスコードは404のまま返す」のが基本です。

正直、.htaccessで最も差がつきやすいのはこのセクションで挙げた派手な機能そのものより、URL設計とステータスコードの整合性だと筆者は思っています。301・404・200の使い分けが曖昧なサイトは、コンテンツが良くても評価を取りこぼしやすいです。SEOの支援でも、まずここを整えるだけでクロールや重複の問題が見えやすくなることが少なくありません。

.htaccessの書き方

.htaccessは、テキストエディタで作成できるシンプルな設定ファイルです。ただし、シンプルだからこそ1行のミスでサイト全体に影響することがあります。まずは書式の基本を守ることが重要です。

.htaccessファイルの記述に関するルール
  • 文字コードはUTF-8で保存する
  • ファイル名は「.htaccess」にする
  • 不要な拡張子(.txt)を付けない
  • アップロード前にテスト環境で動作確認する

既存記事では改行コードLFや最終行空白などが挙げられがちですが、2026年時点の実務では「UTF-8」「余計な拡張子を付けない」「サーバーで構文エラーを起こさない」の3点を優先して確認するほうが現実的です。レンタルサーバーやエディタによって細部は吸収される一方、ファイル名ミスや全角スペース混入は今でもよく起きます。

リダイレクトの場合

旧URLから新URLへ恒久的に転送するなら、301リダイレクトを設定します。

RewriteEngine On
RewriteCond %{HTTP_HOST} ^〇〇〇\.co\.jp$ [NC]
RewriteRule ^(.*)$ https://□□□.co.jp/$1 [R=301,L]

「〇〇〇.co.jp」へのアクセスを「https://□□□.co.jp」に301リダイレクトする例です。一時的な転送なら301を302に変更します。

ただし、サイト移転やURL変更では「とりあえずトップへ全部飛ばす」設定は避けたいところです。旧URLごとに対応する新URLへ1対1で転送したほうが、ユーザー体験もSEO評価の引き継ぎも安定します。

URLの正規化を行う場合

同じ内容のページに複数URLでアクセスできるなら、.htaccessで1つのURLに寄せることが基本です。以下は代表的な記述例です。

wwwの有無、index.htmlの有無、SSL化に伴うhttpからhttpsへの変更などは、.htaccessで整理できます。

「wwwあり」から「wwwなし」へ統一する記述例

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.〇〇〇\.com$ [NC]
RewriteRule ^(.*)$ https://〇〇〇.com/$1 [R=301,L]

「index.htmlあり」を「index.htmlなし」へ統一する記述例

RewriteEngine On
RewriteCond %{THE_REQUEST} \s/+(.*/)?index\.html[\s?] [NC]
RewriteRule ^(.*/)?index\.html$ https://〇〇〇.com/$1 [R=301,L]

SSL導入時に「http」から「https」へ統一する記述例

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

パラメータ付きURLの扱いを整理する際の考え方

RewriteEngine On
RewriteCond %{QUERY_STRING} .+
RewriteRule ^campaign/$ https://〇〇〇.com/campaign/? [R=301,L]

パラメータ削除は便利ですが、すべてのパラメータを一律で落とすと、広告計測や絞り込み機能まで壊すことがあります。たとえば、広告流入のutmパラメータだけを除去したいのか、商品一覧の並び替えパラメータまで消してよいのかで設計は変わります。筆者としても、この部分は設定例のコピペより先に「何を残し、何を消すか」を整理することが重要だと感じます。

なお、URLの正規化は.htaccessだけで完結しないこともあります。HTML側の指定も含めて確認したい方は、canonical(カノニカル)タグとは?書き方やSEOにおける必要性も是非参照ください。

BASIC認証の場合

BASIC認証を導入する場合は、.htaccessと.htpasswdの2つをセットで用意します。

AuthType Basic
AuthName "Please enter your ID and password"
AuthUserFile /path/.htpasswd
Require valid-user

BASIC認証では、上記の.htaccessに加えて、ユーザーIDと暗号化済みパスワードを記述した「.htpasswd」ファイルが必要です。

既存記事にあったAuthGroupFile /dev/nullは、環境によっては不要です。2026年時点では、よりシンプルな構成で十分なケースが多いでしょう。

また、.htpasswdは公開ディレクトリの外に置くのが基本です。パス指定を誤ると認証が通らないだけでなく、管理上のリスクも高まります。Googleもセキュリティ対策の文脈で、.htaccessのバックアップやサーバー設定の確認を推奨しています。
(参照:マルウェアを防ぐための基本対策

IP制限の場合

IP制限は、Apacheのバージョンによって書き方が異なる点に注意が必要です。

古いApache 2.2系では以下のような書き方が使われていました。

order allow,deny
deny from all
allow from 123.456.789.012

ただし、2026年時点で主流のApache 2.4系では、Requireディレクティブを使う書き方が基本です。

Require all denied
Require ip 123.456.789.012

既存の古い記事や掲示板の記述をそのまま使うと動かないことがあるため、サーバーのApacheバージョン確認は必須です。実務上も、IP制限が効かない相談の多くは「書式が古い」か「CDNやプロキシ越しで送信元IPの見え方が違う」ことが原因です。

X-Robots-Tagを設定する場合

HTML以外のPDFや画像にnoindexを付けたい場合は、.htaccessでX-Robots-Tagを設定できます。

これは2026年時点でも見落とされやすい実務ポイントです。たとえば、資料PDFが検索結果に大量に出てしまう、古い画像URLがインデックスされている、といったケースで有効です。

<Files ~ "\.pdf$">
Header set X-Robots-Tag "noindex, nofollow"
</Files>

Google公式でも、Apache環境では.htaccessでX-Robots-Tagを設定できることが示されています。robots.txtでクロールを止めるだけでは、noindexの指示自体が読まれないことがあるため、この違いは重要です。
(参照:X-Robots-Tag の実装方法

.htaccessの設置場所と有効範囲

.htaccessは、置いたディレクトリとその配下に対して効くのが基本です。つまり、どこに設置するかで影響範囲が変わります。

.htaccessファイルの設置位置と有効範囲

サイト全体に影響させたいならルートディレクトリ、特定の下層ディレクトリだけに効かせたいならそのディレクトリ直下に設置します。

このように、.htaccessの内容をWebサイト全体に適用する場合はルートディレクトリ、特定配下だけに適用する場合は対象ディレクトリの先頭に設置するのが基本です。

たとえば、採用サイトだけ別ドメインから移転した、会員向け資料フォルダだけ認証をかけたい、旧キャンペーンURL群だけ新URLへ寄せたい、といった場面では設置場所の判断が重要になります。

筆者がアクセス改善の相談を受ける時も、まず確認するのがこの設置場所です。古いリダイレクト設定が下層に残っていて、意図しないURLだけ転送され続けているケースは珍しくありません。良くも悪くもサイト全体の評価やユーザー導線に響くため、古い.htaccessの棚卸しは最初にやる価値があります。

.htaccessを設定するときの注意点

.htaccessは便利ですが、設定ミスの影響が大きいファイルです。特に本番環境で直接編集する場合は、バックアップ、テスト、反映後確認の3点を必ずセットで行うことがおすすめです。

ファイル名を間違えないこと

1つ目の注意点は、ファイル名を間違えないことです。

ファイル名は「.htaccess」です。先頭のドットがない「htaccess」や、末尾に「.txt」が付いた状態では正しく認識されません。

Windows環境では先頭ドットのファイル名が扱いにくいこともあります。その場合はいったん別名で保存し、アップロード時に正しい名称へ変更すると良いでしょう。

.htaccessファイルの設置場所を間違えない

2つ目に気を付けたいのは、.htaccessファイルの設置場所です。

先述の通り、.htaccessは設置場所によって有効範囲が変わります。下層ディレクトリだけに適用したい設定を上位階層に置くと、サイト全体に影響が広がります。

特にリダイレクト設定では、1つの誤配置で大量のURLが意図しない転送になることがあります。反映前に対象URL一覧を作り、curlやブラウザ拡張でステータスコードを確認していく運用が安全です。

robots.txtと役割を混同しない

3つ目は、robots.txtと.htaccessの役割を混同しないことです。

robots.txtはクローラーへのクロール指示、.htaccessはサーバー動作の制御です。似て見えて役割は別物です。

たとえば、robots.txtでDisallowしたURLはクロールされないため、ページ内のnoindexやX-Robots-Tagが読まれないことがあります。Googleも、robots.txtでブロックされたページではインデックス制御ルールが検出されないと案内しています。つまり、「検索結果に出したくない」ならrobots.txtだけでは不十分な場合があります。
(参照:robots meta タグとX-Robots-Tagの注意点
(参照:robots.txt の仕様

セキュリティ低下のリスクを理解しておく

4つ目は、サーバー設定に触れる以上、セキュリティ面のリスクを理解しておくことです。

.htaccessの編集にはサーバーアクセス権が必要です。外部企業に依頼する場合は、権限の範囲、作業ログ、バックアップの有無を確認したほうが安心です。

また、.htaccessそのものを不用意に共有したり、バックアップファイルを公開領域に置いたままにしたりするのも避けたいところです。Googleも、設定変更前に.htaccessのバックアップを取り、作業後は不要なバックアップを削除することを勧めています。

正直、このテーマの構造的な難しさは「設定を足すほど管理対象も増える」点にあります。新規設定を追加し、古い設定も残り続けると、運用負荷が倍々で上がっていきます。だからこそ、.htaccessは書き足すだけでなく、定期的に整理する前提で管理したほうが安全です。

よくある質問

.htaccessはどのサーバーでも使えますか?

使えません。.htaccessは主にApache系サーバーで使われる仕組みです。NGINXでは通常、.htaccessではなくサーバー設定ファイル側で制御します。レンタルサーバーでも、Apache系かつ上書きが許可されているかを確認する必要があります。

.htaccessとrobots.txtの違いは何ですか?

.htaccessはサーバーの動作を制御するファイルで、リダイレクトや認証、ヘッダー付与などに使います。robots.txtはクローラーに対してクロール可否を伝えるファイルです。検索結果から外したいURLに対して、robots.txtだけで対応しようとすると意図通りにならないことがあります。

SEO対策では.htaccessで何を優先して設定すべきですか?

まず優先したいのは、http/https、wwwあり/なし、index.htmlあり/なしなどのURL統一です。次に、URL変更時の301リダイレクト、不要ファイルへのX-Robots-Tag、適切な404応答の整備が続きます。実務上は、設定を増やす前にURL設計を整理することが成果につながりやすいです。

.htaccessの記述を間違えるとどうなりますか?

軽微なものなら一部URLだけが想定外の挙動になりますが、重いものだとサイト全体が500エラーになることもあります。そのため、本番編集前のバックアップ、テスト環境での確認、反映後の主要URLチェックは必須です。

.htaccessだけでURLの正規化は完了しますか?

必ずしも完了しません。.htaccessによる301転送は強力ですが、重複の種類によってはcanonicalタグやCMS設定も必要です。たとえば、並び替えURLや絞り込みURLが多いECサイトでは、転送だけでなくインデックス方針全体を設計する必要があります。

まとめ

.htaccessは、Apache系サーバーでディレクトリ単位の挙動を制御できる設定ファイルで、301リダイレクト、URLの正規化、認証、IP制限、404制御などに活用できます。

一方で、書き方や設置場所を誤ると、SEO評価の分散やユーザー導線の崩れ、場合によってはサイト障害につながるため、便利さ以上に設計と確認が重要です。2026年時点でも、特にURL統一と移転時の301設定は、検索評価を安定して引き継ぐうえで欠かせません。

もう少しSEOについて広く学びたい方は、以下のSEOの内部対策についてページも是非参考にしてください。