.htaccessとは?初心者向けに設定方法(書き方・設置場所)を解説
.htaccessとはWebサイトの動作やアクセス制御をディレクトリ単位で設定できるサーバー設定ファイルです。リダイレクトやBASIC認証、IP制限、エラーページの指定、キャッシュ制御などをサーバー本体の設定を変更せずに行うことができます。本記事では設定方法から書き方、反映されない場合の対処法を初心者向けに解説します。

.htaccessとは?
.htaccess(ドットエイチティーアクセス)とは、Webサーバーの動作をディレクトリ単位で制御するための設定ファイルです。
レンタルサーバーではサーバー本体の設定を利用者が変更できないことが多いため、サイト運営者が自分のサイトの挙動だけを調整できる仕組みとして .htaccess が用意されています。
.htaccessを使うことで、以下の設定を行うことができます。
リダイレクトの設定
BASIC認証
IP制限
エラーページの指定
ディレクトリ一覧表示の禁止
キャッシュ・圧縮
つまり.htaccessは、サーバー全体の設定を変えなくても、自分のサイトだけのルールをサーバーに追加できる仕組みと考えると分かりやすいでしょう。
.htaccessでできること
.htaccessを設定することでできることは、大きく分けて以下の6つです。
| 設定内容 | 概要 | 主な目的 |
|---|---|---|
| リダイレクトの設定 | 特定のURLへ自動転送する設定 | URL正規化・サイト移転・重複対策 |
| BASIC認証 | ID・パスワードでアクセス制限をかける | テスト環境・非公開ページの制御 |
| IP制限 | 特定のIPのアクセスを許可・拒否する | 不正アクセス対策・管理画面の保護 |
| エラーページの指定 | 404などのエラー時に表示するページ設定 | UX改善・離脱防止 |
| ディレクトリ一覧禁止 | フォルダ内のファイル一覧表示を防ぐ | セキュリティ向上 |
| キャッシュ・圧縮 | ブラウザキャッシュやgzip圧縮を設定 | 表示速度改善・Core Web Vitals対策 |
それぞれ詳しく解説します。
リダイレクトの設定
.htaccessを使うことで、特定のURLにアクセスしたユーザーや検索エンジンのクローラーを別のURLへ自動的に転送するリダイレクト設定を行うことができます。
.htaccessで設定できるリダイレクトは主に以下の2つです。
301リダイレクトは、常時SSL化に伴うhttpからhttpsへの統一や、wwwあり・なしの正規化、サイトリニューアル時のURL変更、削除ページから代替ページへの誘導などの場面で使います。
一方、302リダイレクトは、メンテナンス中の一時的な転送や期間限定ページへの誘導、A/Bテストなど、元のURLへ戻す可能性がある場合に利用されます。
.htaccessによるリダイレクトは、ユーザーを別のページに誘導するだけでなく、重複URLの解消やSEO評価の統合など、SEO対策をおこなう上で重要な役割を持つ設定です。
BASIC認証
.htaccessを使うことで、Webサイトや特定ディレクトリにIDとパスワードを設定し、許可されたユーザーだけがアクセスできるようにする「BASIC認証」を設定できます。
ログイン情報を知らないユーザーはページを閲覧できないため、非公開ページの保護に有効です。
例えば、制作中のサイトやリニューアル中のテスト環境、社内向けの資料ページなど、限られた関係者だけに公開したい場合には.htaccessを使ってBASIC認証をおこなう方法が確実です。
なお、BASIC認証を設定したページは検索エンジンのクローラーもアクセスできなくなるため、公開したいページに誤って設定しないよう注意しましょう。
IP制限したい場合
.htaccessを使うことで、特定のIPアドレスからのアクセスを許可したり、逆に拒否したりする「IP制限」を設定できます。
アクセス元を指定して制御できるため、第三者のアクセスを防ぎたいページや、管理画面など重要なページを保護したい場合に有効です。具体的には、社内ネットワークや関係者のIPアドレスからのみ閲覧できるようにしたい場合や、不正アクセスが疑われるIPアドレスをブロックしたい場合に利用します。
.htaccessによるIP制限は、ディレクトリ単位で設定できるため、サイト全体ではなく特定ページだけを保護したい場合にも適しています。
エラーページの指定
.htaccessを使うことで、404や403などのエラーが発生した際に表示するページを、サイトのデザインに合わせたオリジナルの内容に変更できます。
オリジナルの内容に変更することで、デフォルトの無機質なエラー画面ではなくサイト独自のエラーページを表示できるため、ユーザーの離脱を防ぎやすくなります。
例えば、存在しないURLへアクセスしたユーザーに対してトップページや関連ページへの導線を用意したり、問い合わせページへ誘導したりすることで、サイト内の回遊を維持できます。
.htaccessによるエラーページの指定は、ユーザー体験の改善だけでなく、不要な離脱を防ぐ点でも有効です。
ディレクトリ一覧表示の禁止
.htaccessを使うことで、ディレクトリにアクセスしたときに、その中のファイル一覧が表示されないようにできます。
設定しない場合、次のような情報が第三者に見えてしまう可能性があります。
画像やPDFなどのファイル名
資料の保存場所(URL)
バックアップファイルや一時ファイルの存在
このような意図しない情報公開を防ぐために、.htaccessでディレクトリ一覧を禁止しておくと安心です。
キャッシュ・圧縮
.htaccessを使うことで、ブラウザキャッシュの設定やgzip圧縮などを有効にし、ページ表示を高速化できます。
キャッシュを設定すると、画像やCSS・JavaScriptなどのファイルをユーザーのブラウザに一時保存できるため、2回目以降の表示が速くなります。
また、gzip圧縮を有効にすると、HTMLやCSSなどのファイルを圧縮して送信できるため、通信量が減り読み込み時間の短縮につながります。
このように.htaccessによるキャッシュ・圧縮は、ユーザー体験の向上だけでなく、表示速度の改善を通じてCore Web Vitals対策にも役立ちます。
.htaccessの設定方法
.htaccessは便利な設定ファイルですが「どこに置くのか」「どうやって設定するのか」が分からず戸惑う方も多いポイントです。
特に、設置場所によって設定の影響範囲が変わるため、いきなり書き方を覚えるのではなく、まずは基本的な考え方と設置方法を理解しておくことが重要です。
ここでは、.htaccessの設置場所と有効範囲、実際の設定手順について初心者向けに分かりやすく解説します。
.htaccessの設置場所と有効範囲
.htaccessは「置いた場所より下のフォルダに効く」設定ファイルです。そのため、どこに置くかで「どこまで影響するか」が決まります。
まず、基本の設置場所はWebサイトの公開フォルダ(ドキュメントルート)です。レンタルサーバーでは多くの場合、public_htmlやwww、htdocsなどのフォルダがこれにあたります。
- Webサイト全体へ適用
-
ドキュメントルート直下(例:/public_html/.htaccess)
- 特定のディレクトリのみ適用
-
該当フォルダの中(例:/public_html/blog/.htaccess → blog配下のみに適用)
- WordPressの場合
-
WordPressを設置したフォルダ(目印:wp-admin / wp-content / wp-includes がある階層)に配置するのが一般的

例えば、図のように最上位のhtmlディレクトリに .htaccess を設置すると、Aディレクトリ配下(a・bを含む)とBディレクトリ配下のすべてに適用されます。
一方で、Aディレクトリの中に .htaccess を設置した場合は、Aディレクトリ配下(a・bを含む)にのみ適用され、Bディレクトリ配下には適用されません。
.htaccessの設定手順
.htaccessは以下の手順で設定します。
- .htaccessを作成する
まず、テキストエディタ(メモ帳など)で新しいファイルを作成し、ファイル名を「.htaccess」として保存します。
- サーバーにアップロードする
FTPソフトやレンタルサーバーのファイルマネージャーを使って、.htaccessをサーバーへアップロードします。
- 設定内容を書く
.htaccessの中に、リダイレクトやアクセス制御などの設定を記述します。
- 保存して反映を確認する
.htaccessは保存するとすぐ反映されます。ブラウザで対象ページにアクセスし、設定が正しく動作するか確認しましょう。
.htaccessの書き方例
.htaccessを使ったURLのリダイレクトやアクセス制限、表示速度の改善など、サイト運営でよく利用される代表的な設定例を紹介します。
そのまま利用できる形で掲載していますが、ドメイン名やパスは自分の環境に合わせて書き換えてください。
リダイレクトしたい場合の書き方
ページのURL変更やサイトリニューアル時にURLのリダイレクトを行う場合は以下のように記述します。
例:/〇〇〇.html → /▲▲▲.html に転送したい場合
Redirect 301 /old.html https://example.com/new.html例:httpアクセスをhttpsへ統一したい場合
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://example.com/$1 [R=301,L]例:www.example.com → example.com に統一したい場合
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
RewriteRule ^(.*)$ https://example.com/$1 [R=301,L]例:/about → /about/ に統一したい場合
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !/$
RewriteRule ^(.+)$ /$1/ [R=301,L]例:aaa/index.html→aaa/に統一したい場合
RewriteEngine on
RewriteCond %{THE_REQUEST} ^.*/index.html
RewriteRule ^(.*)index.html$ http://example.com/$1 [R=301,L]BASIC認証したい場合の書き方
特定ディレクトリをID・パスワードで制限する場合は以下のように記述します。
例:ディレクトリをログイン制限したい場合
AuthType Basic
AuthName "Restricted"
AuthUserFile /full/path/to/.htpasswd
Require valid-userIP制限をしたい場合の書き方
例:192.0.2.1 のみアクセスを許可したい場合
Require ip 192.0.2.1補足:指定したIPだけアクセス可能となり、それ以外のアクセスは自動的に拒否されます。
例:192.0.2.1 のアクセスを拒否したい場合
<RequireAll>
Require all granted
Require not ip 192.0.2.1
</RequireAll>補足:基本はすべてのアクセスを許可しつつ、指定したIPだけブロックできます。
オリジナルのエラーページを設定したい場合の書き方
エラー発生時にオリジナルで作成したページを表示する場合は以下のように記述します。
ErrorDocument 404 /〇〇.html ErrorDocument 403 /〇〇.htmlディレクトリ一覧表示を禁止したい場合の書き方
ディレクトリ内のファイル一覧が表示されないようにする場合は以下のように記述します。
Options -Indexes上記設定を行うことで、indexファイルが存在しないディレクトリにアクセスされた際のファイル一覧表示を防ぐことができます。これにより、画像・PDF・バックアップファイルなどの意図しない公開を防ぎ、セキュリティやサイト品質の維持につながります。
キャッシュ設定したい場合の書き方
例:jpg・png などの画像を長期間キャッシュしたい場合
<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"
</IfModule>例:CSS・JSを一定期間キャッシュしたい場合
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType text/css "access plus 1 month"
ExpiresByType application/javascript "access plus 1 month"
</IfModule>PDFファイルのアクセス・インデックス制御
PDFファイルへの直接アクセスを防ぐ場合は以下のように記述します。
<FilesMatch "\.pdf$">
Require all denied
</FilesMatch>上記設定をおこなうことで、すべてのPDFが閲覧不可になります。
PDFページを検索結果に表示させたくない場合は、以下のように記述します。
<FilesMatch "\.pdf$">
Header set X-Robots-Tag "noindex, nofollow"
</FilesMatch>上記設定をおこなうことでPDF自体は閲覧可能なまま、検索エンジンに対して「インデックスしない」指示を送れます。
.htaccessが反映されないときに確認するポイント
.htaccessを正しく記述しても、設定が反映されないことがあります。その場合は、次の6つのポイントを順番に確認してみましょう。
設置場所の間違い
ファイル名の間違い
AllowOverrideが無効になっている
記述ミス・構文エラー
ブラウザ・サーバーのキャッシュの影響
.htaccessが使えない環境
それぞれ詳しく解説します。
設置場所の間違い
前述した通り、.htaccessは、設置したディレクトリ配下にのみ設定が適用されます。
そのため、公開フォルダより上の階層に置いていたり、設定を効かせたいフォルダとは別の場所に設置していると、内容が反映されません。初心者に多いのは、サーバー内のフォルダ構成を勘違いして「ドメインのフォルダの外」や「1つ上の階層」に置いてしまうケースです。
まずは、実際にHTMLや画像が置かれている公開フォルダに.htaccessがあるかを確認しましょう。
ファイル名の間違い
.htaccessは「.htaccess」という名前そのものである必要があります。
しかしWindows環境やエディタの設定によって、.htaccess.txtや.htaccess.htmlなど、意図せず余計な拡張子が付いてしまうことがあります。
この場合、見た目は.htaccessでも実際には別ファイルとして扱われるため、設定は反映されません。
FTPソフトやサーバーのファイルマネージャー上で、ファイル名が完全に「.htaccess」になっているかを確認しましょう。
PC側で「拡張子を表示する」設定を有効にしてから保存すると安心です。
AllowOverrideが無効になっている
Apacheでは、サーバー側で.htaccessの使用を許可する設定「AllowOverride」 が無効になっていると、.htaccessは読み込まれません。
イメージとしては、.htaccessは「現場で貼れるルール表」ですが、AllowOverrideは「そのルール表を貼っていいかどうかの許可」です。許可が出ていない状態だと、ルール表(.htaccess)を置いても見てもらえません。
共有レンタルサーバーでは一般的にAllowOverrideは有効になっていることが多い一方、VPSや自前サーバーではセキュリティや性能の理由で無効になっていることがあります。
もし「設置場所もファイル名も正しいのに、まったく反映されない」という場合は、AllowOverrideが原因の可能性があります。
記述ミス・構文エラー
.htaccessは記述ミスがあると設定が反映されないだけでなく、500エラーが発生することがあります。
原因として多いのは、記号やスペースの入れ間違い、記述順序の問題、必要な機能がサーバー側で有効になっていないケースなどです。
初心者の方は、いきなり複数の設定をまとめて追加するのではなく、1つずつ追記してその都度動作確認するのがおすすめです。
万が一エラーになったときにすぐ戻せるよう、編集前に.htaccessをバックアップしておきましょう。
ブラウザ・サーバーのキャッシュの影響
キャッシュが残っていると、.htaccessを変更しても画面の表示や挙動が変わらないことがあります。これは、古いデータをブラウザやサーバー側が一時的に保持しているためです。
まずはシークレット(プライベート)モードで確認するか、ブラウザのキャッシュを削除して再チェックしてみましょう。
また、サイト側でキャッシュ機能を使っている場合は、そちらのキャッシュもクリアしないと反映されないことがあります。
CloudflareなどのCDN(サイト表示を高速化する仕組み)を利用している場合、変更前のデータが一時的に表示され続けることがあります。
.htaccessが使えない環境
.htaccessを利用するためには、次の条件を満たしている必要があります。
- 条件① ApacheまたはApache互換サーバーであること
-
.htaccessはApache専用の仕組みのため、NginxやIISなどの環境では基本的に利用できません。
- 条件② サーバー側で.htaccessの利用が許可されていること
-
Apache環境でも、サーバー側で.htaccessの利用が許可されていない場合は設定が反映されません。
.htaccessの許可設定は「AllowOverride」と呼ばれ、.htaccessを使用できるかどうかを制御しています。共有レンタルサーバーでは通常有効ですが、VPSや自前サーバーでは無効な場合もあるため、反映されないときはサーバー設定を確認しましょう。
.htaccessの注意点
.htaccessを設定する際に注意すべきなのは次の3つです。
保存すると即反映される
複数の.htaccessが競合する(意図しない動きになる)
.htaccessの記述量が多いと表示速度に影響する
それぞれ詳しく解説します。
保存すると即反映される
.htaccessは、保存・アップロードした瞬間から設定が効き始めるため、記述ミスには注意が必要です。
HTMLのように「公開ボタンを押して反映」ではなく、ファイルが置かれた時点でサーバーの動きが変わるイメージです。
そのため、記述を少し間違えただけでも、リダイレクトが意図しない方向に飛んだり、ページが表示できなくなって500エラーになることがあるため、設定する際は慎重におこなう必要があります。
初心者の方は、いきなり大量に追記するのではなく、「1つの設定を追加→動作確認→次を追加」の順で進めるのが安全です。
複数の.htaccessが競合する(意図しない動きになる)
.htaccessは「置いた場所より下のフォルダに効く」ため、サイト内に複数設置することができます。
ただし、上の階層の設定は下の階層にも引き継がれるので、別の場所にある.htaccess同士が影響し合い、設定がややこしくなることがあります。
例えば、公開フォルダ直下の.htaccessで「wwwなしに統一」を設定しているのに、ブログフォルダ内の.htaccessで別の転送ルールを追加すると、転送が二重にかかったり、条件次第ではリダイレクトループになることがあるため注意が必要です。
.htaccessの記述量が多いと表示速度に影響する
.htaccessは、ページにアクセスがあるたびにサーバーが読み込んで処理を行います。
そのため、.htaccessの記述内容が多かったり複雑だったりすると、ページ表示までの処理が増えてしまい、表示速度へ影響する可能性があります。
小規模なサイトでは大きな問題になることは少ないですが、アクセス数の多いサイトや大規模サイトでは、サーバー負荷や表示速度に影響するケースもあるため注意が必要です。
表示速度はユーザー体験だけでなく、Core Web Vitals(ページの読み込み体験を評価する指標)にも関係するため、.htaccessの設定は必要最小限にまとめましょう。
使っていないリダイレクトや古い設定は定期的に整理すると、無駄な処理を減らしてサイトのパフォーマンス維持につながります。
.htaccessに関するよくある質問
.htaccessとrobots.txtの違いは何ですか?
.htaccessは「アクセス制御・サーバーの動作を変える設定」で、robots.txtは「検索エンジンに対するクロールのお願い」です。
例えば、robots.txtでクロールを禁止していても、URLを直接入力すればページは表示されます。一方、.htaccessでアクセス拒否を設定すると、ユーザーも検索エンジンもページを閲覧できません。
確実に非公開にしたい場合は.htaccess、クロール制御だけならrobots.txtと覚えると分かりやすいでしょう。
.htaccessはSEOに影響しますか?
.htaccessを設定する項目の中で以下に該当するものはSEOに影響します。
・301リダイレクト:重複対策・ページ移転や統合時のSEO評価の引き継ぎができます
・URL正規化:重複対策・不要なクロール防止に繋がります
・表示速度改善:CWVの評価に影響します
まとめ
今回は、「.htaccess」でできること・設定方法や設置場所、用途に合わせた書き方について解説しました。
.htaccessはWebサーバーを直接制御するファイルなので、間違った内容を記述して設置すると、本来の目的であるリダイレクトやBASIC認証、特定のIPアドレスからのアクセス制限などが機能しないだけでなく、サイトへアクセスできなくなる恐れもあります。そのため、設定する際は本記事を参考に進めて頂ければと思います。
なお、弊社ではテクニカルな実装の代行を含むSEOコンサルティングをおこなっています。.htaccessの設定を含むSEO要件の実装にお困りの場合は気軽にご相談くださいませ。

ぜひ、読んで欲しい記事
-
SEO対策サイテーションとは?やり方やSEO・MEO・LLMOでの重要性を解説2026/04/202026/04/20
-
SEO対策被リンク獲得代行サービス10選│プロがおすすめの会社を紹介2026/04/172026/04/17
-
SEO対策ページネーションとは│実装方法と実装のポイントを解説2026/04/162026/04/16
-
SEO対策スニペットとは?意味・種類とSEOでの設定ポイントを解説2026/04/032026/04/03
-
SEO対策AMPとは?仕組み・SEO効果・Googleの優遇措置終了について解説2026/04/022026/04/02
-
SEO対策SEO対策代行会社おすすめ21選【一覧比較】│失敗しない選び方を解説2026/04/142026/04/14

