
.htaccessとは、Webサーバーの動作をディレクトリ単位で制御できるファイルです。
ファイル内にルールを守った記述をすれば、アクセス制限やリダイレクト指定、404ページの作成といったことができます。
非常に便利な機能ですが、具体的な仕組みがよくわからず活用できていない方もいるのではないでしょうか。
本記事では、.htaccessの記述方法や設定手順、使う際のポイントについて解説します。
「.htaccessを使ってみたいけどやり方がよくわからない」
「.htaccessの記述方法について詳しく知りたい」
このような要望・疑問がある方はぜひ最後までご覧ください。
1『SEOコンサルティング』:サイト全体の戦略設計からプロが伴走
2『記事作成代行サービス』:業界の専門家によるSEOに強い記事作成
3『SEO内製化支援プラン』:社内に知見と実行をインストールし、成果最大化
4『コンバージョン改善サービス』:サイト改善によるCV創出で成果最大化
目次
.htaccessとは何か?基本の仕組みと役割
.htaccess(ドット・エイチティアクセス)とは、Apache Webサーバーの動作をディレクトリ単位で制御するための設定ファイルです。
このファイルを設置することで、通常はサーバー管理者がroot権限(管理者権限)で実行するような高度な設定を、一般のWebサイト管理者がディレクトリ単位で手軽に行なえるようになります。例えば、IPアドレスによるアクセス制限、ページのリダイレクト、パスワード保護(Basic認証)などです。
設定したいディレクトリにファイルを置くだけで、そのディレクトリおよび下層ディレクトリにルールが即座に適用されるため、SEO施策やセキュリティ強化の現場で利用されています。
サーバー設定との違い(httpd.confとの関係)
Apacheサーバーには、サーバー全体の主設定ファイルである「httpd.conf」が存在します。
httpd.confはサーバーの起動時に一度だけ読み込まれるため、動作が高速ですが、設定変更には管理者権限とサーバーの再起動が必要です。
一方、.htaccessはアクセスがあるたびに都度読み込まれるため、サーバーの再起動なしで設定が即座に反映されます。ただし、アクセスのたびにファイルを探して読み込む処理が発生するため、大量に設置するとパフォーマンスに若干の影響を与える可能性があります。基本的には「httpd.confが触れない環境(レンタルサーバーなど)での代替手段」という位置づけです。
.htaccessが使えるサーバーの種類と前提条件
.htaccessは、Webサーバーソフトウェアが「Apache」または「LiteSpeed(Apache互換)」である場合に使用できます。「Nginx」や「IIS」を採用しているサーバーでは原則として使用できません(Nginxには互換機能がないため、別の設定記述が必要です)。
また、Apacheサーバーであっても、主設定ファイル(httpd.conf)側で「AllowOverride」というディレクティブが有効(AllまたはLimitなど)に設定されている必要があります。多くの共用レンタルサーバーではデフォルトで利用可能になっていますが、VPSなどを使って自前で構築する際は確認が必要です。
.htaccessを使うべきケース・使ってはいけないケース
.htaccessは便利ですが、万能ではありません。状況に応じて使い分けることが重要です。
| ケース | 具体的な判断基準 |
|---|---|
| 使うべきケース | ・レンタルサーバーを利用しており、httpd.confを編集できない場合 ・特定のディレクトリだけ設定を変更したい場合 ・設定を頻繁に変更し、即時反映させたい場合 |
| 使うべきではないケース | ・root権限があり、httpd.confを直接編集できる場合(httpd.confの方が高速) ・極めて高いアクセス負荷があり、少しの遅延も許されない場合 ・CMSのプラグインなどでより安全・簡単に同じ機能が実装できる場合 |
メリットとデメリット
最大のメリットは、サーバーの再起動が不要で、ファイルをアップロードするだけですぐに設定が反映される点です。また、ディレクトリごとに異なる設定を行なえるため、管理の柔軟性が高いことも利点です。
一方デメリットとしては、前述の通りアクセス毎にファイル読み込みが発生するため、Webサイトの表示速度にわずかながら負荷がかかる点が挙げられます。また、記述を一つ間違えるとサイト全体が表示されなくなる(500エラー)リスクがあるため、慎重な操作が求められます。
パフォーマンス・セキュリティ・SEOへの影響
- パフォーマンス
- アクセスごとにサーバーがディレクトリ階層をさかのぼって.htaccessを探すため、利用は必要最小限にとどめるのがベストです。
- セキュリティ
- 特定のIPアドレスからの攻撃を遮断したり、重要なファイルへのアクセスを拒否したりすることで、セキュリティレベルを大幅に向上させることができます。
- SEO
- サイト移転時の「301リダイレクト」や、URLの「正規化(wwwのありなし統一)」を行なうことで、検索エンジンからの評価を正しく引き継ぎ、分散を防ぐことができます。SEO対策においては必須のツールと言えます。
.htaccessでできること一覧【用途別まとめ】
.htaccessで実現できる主な機能を一覧表にまとめました。目的に応じて適切な記述を行ないます。
| カテゴリ | できること | 概要 |
|---|---|---|
| 転送処理 | 301リダイレクト | サイト移転やURL変更時に、旧URLから新URLへ自動転送する。 |
| アクセス制限 | Basic認証 | ページ閲覧時にIDとパスワードの入力を求める。 |
| セキュリティ | IPアドレス制限 | 特定のIPからのアクセスを拒否、または許可する。 |
| URL正規化 | Rewrite機能 | http→httpsへの統一や、wwwのありなしを統一する。 |
| 表示設定 | エラーページ指定 | 404エラー(ページが見つかりません)などの表示画面をオリジナルのものにする。 |
| その他 | ファイル一覧拒否 | ディレクトリにアクセスした際、ファイル一覧が表示されるのを防ぐ。 |
301リダイレクト
.htaccessでリダイレクト機能を設定すると、指定先URL・ディレクトリにアクセスしたクローラーやユーザーを別のページにリダイレクト(転送)させることができます。
リダイレクトは、サイトリニューアル時に旧URLから新URLにサイトを移転させる場合やURLを正規化する場合などに使います。
また、リダイレクトには301リダイレクト・302リダイレクトがありますが、.htaccessのファイル内にはどちらの記述も可能です。
詳しく知りたい方は下記の記事をご覧ください。
301リダイレクトとは?行なうべき理由や設定方法、注意点を徹底解説
BASIC認証
BASIC認証は、Webサイト内にパスワード認証機能を設けて、特定のページやファイルにアクセス制限をかけることができる認証方法です。
BASIC認証は、サイトやページの公開前に関係者だけで最終チェックする場合や、管理画面など関係者のみが閲覧する場合に用いられます。
Webサイトにアクセス制限をかける方法はいくつかありますが、.htaccessのファイル内にBASIC認証の記述をするのが最も簡易的な方法です。
IPアドレスによるアクセス制限
IP制限とは、接続元のIPアドレスを使ってアクセスを制限する方法です。
IPアドレスとは、インターネットに接続されているコンピューターなどの通信機器についている番号のことで、セキュリティ向上の役割を担っています。
わかりやすく例えるなら、送信元を識別するための住所のようなものです。
.htaccessファイルにIP制限の記述をすれば、特定のIPアドレスのみアクセスを拒否できます。またその逆も可能で、特定のIPアドレスのみアクセスを許可する権限を与えられます。
URLの正規化・Rewrite
URLの正規化とは、同じページを表示する複数のURL(例:http://example.com と https://www.example.com/index.html)を一つに統一することです。検索エンジンはURLごとに評価を分散してしまうため、.htaccessを使って「httpsへの統一」「wwwのありなし統一」などを強制することで、SEO評価を集約させます。「mod_rewrite」というモジュールを使用し、複雑な条件でのURL書き換えも可能です。
ファイル一覧の無効化
Webサーバーの初期設定によっては、index.htmlなどのファイルが存在しないディレクトリにアクセスすると、その中に保存されているファイル一覧(Index Of…)が丸見えになってしまうことがあります。これはセキュリティ上好ましくありません。
.htaccessに Options -Indexes と記述することで、ファイル一覧の表示を禁止し、外部からの安易な情報収集を防ぐことができます。
404エラーページの指定

ユーザーが存在しないページにアクセスした際、ブラウザ標準の素っ気ないエラー画面ではなく、サイトのデザインに合わせたオリジナルの「404 Not Found」ページを表示させることができます。
ErrorDocument 404 /404.html のように記述することで、ユーザーに対して「トップページに戻る」などの導線を提示でき、サイトからの離脱を防ぐユーザビリティ向上につながります。
.htaccessの書き方と具体的な記述例
ここでは、実際に.htaccessファイルを作成する際の書き方と、すぐ使えるコード例を紹介します。
構文の基本ルール
.htaccessは記述ミス一つでサイトが真っ白になる(Internal Server Error)ため、以下のルールを厳守してください。
- 文字コードは「UTF-8(BOMなし)」:Windowsのメモ帳などはBOM付きになりやすいため、TerapadやVS Codeなどのテキストエディタ推奨です。
- 改行コードは「LF」:Windows標準のCR+LFだと動作しないサーバーがあります。
- 最終行に空行を入れる:ファイルの最後には必ず改行を入れ、空行をつくってください。これがないと最終行の命令が無視されることがあります。
- コメントアウト:# から始まる行はコメント(メモ)として扱われます。
目的別コードテンプレート集
URLの正規化(wwwなし、httpsへ統一)
このコードは、すべてのアクセスを「https://example.com」(wwwなし、httpsあり)に統一し、検索エンジンからの評価分散を防ぎます。サイトのすべてのURLを、指定した正規のURLへ永続的に転送(301リダイレクト)します。
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://example.com/$1 [R=301,L] RewriteCond %{HTTP_HOST} ^www\.example\.com$ RewriteRule ^(.*)$ https://example.com/$1 [R=301,L] </IfModule>
※コード内の「example.com」の部分は、必ずご自身のサイトのドメインに書き換えてください。
※ロードバランサーやプロキシサーバーを経由している環境(AWS、Cloudflareなど)では、RewriteCond %{HTTPS} off だけでは無限ループになる可能性があります。CDNやロードバランサーを利用している場合、以下の記述が必要になることがあります。
RewriteCond %{HTTP:X-Forwarded-Proto} !https
ファイル一覧表示の禁止
ディレクトリ内に「index.html」などのトップファイルがない場合、Webサーバーはセキュリティに関わるファイル名を含むファイル一覧を公開してしまうことがあります。これを防ぐためのセキュリティ記述です。
ユーザーがURLでディレクトリにアクセスした際、ファイルの一覧(Index of /)が表示されるのを防ぎます。
Options -Indexes
特定のIPアドレスからのアクセスを拒否
攻撃元のIPなど、アクセスを遮断したいIPアドレスが明確な場合に利用します。
# Apache 2.4以降 (推奨) <RequireAll> Require all granted Require not ip 192.0.2.1 </RequireAll> # Apache 2.2以前 (非推奨・互換用) # Order allow,deny # Allow from all # Deny from 192.0.2.1
※「192.0.2.1」の部分は、拒否したい実際のIPアドレスに書き換えてください。
特定のIPアドレスのみ許可(社内アクセス限定など)
許可リストにあるIPアドレス以外からのアクセスをすべて遮断します。
許可したいIPアドレスを複数記述する場合は、下記のようにRequire ipを行ごとに分けて記述してください。
# Apache 2.4以降 (推奨) Require ip 203.0.113.5 # 複数の場合は行を分ける Require ip 203.0.113.6 # Apache 2.2以前 (非推奨・互換用) # Order deny,allow # Deny from all # Allow from 203.0.113.5
※「203.0.113.5」などのIPアドレス部分は、許可したい実際のIPアドレスに書き換えてください。
.htaccessの設定手順と設置方法
ファイルを作成してからサーバーに適用するまでの手順を解説します。
ファイルの作成と命名ルール
PC上で作成する際は、まずテキストエディタを開き、必要なコードを記述します。
保存する際、WindowsなどのOSでは「.」から始まるファイル名が作成しにくい場合があるため、一旦「htaccess.txt」として保存します。その後、サーバーにアップロードしてから名前を「.htaccess」に変更するのが一般的です。拡張子(.txtなど)は不要です。
FTP/SFTPでのアップロード方法
作成したファイルは、FTPソフト(FileZillaなど)を使ってWebサーバーにアップロードします。
転送モードは「ASCII(アスキー)モード」または「オート」を選択してください。バイナリモードで送ると改行コードがおかしくなり、エラーの原因になることがあります。アップロード後、ファイル名を「.htaccess」に名前変更します。
WordPressでの設置場所と注意点
WordPressを利用している場合、通常はインストールディレクトリ(wp-config.phpがある場所、一般的にpublic_html直下など)に既に.htaccessが存在します。
WordPressがパーマリンク設定のために自動生成しているため、上書きして消してしまわないよう注意が必要です。追記する場合は、# BEGIN WordPress から # END WordPress の外側(その前か後ろ)に記述するようにしてください。
.htaccess設定が反映されない場合の対処法
設定したのに動かない、あるいはエラーが出るといった場合、以下のポイントを確認してください。
AllowOverrideの設定確認
サーバーの設定(httpd.conf)で、.htaccessの使用許可(AllowOverride)が出ていない可能性があります。特にVPSなどを用いて自前で構築した場合、デフォルトが AllowOverride None(無効)になっていることが多いです。
AllowOverride All に変更されているか確認しましょう。レンタルサーバーの場合は管理画面で設定を確認するか、サポートへ問い合わせが必要です。
ファイル名ミス・エンコード問題
最も多い原因が「ファイル名のタイポ(htaccess.txtのままになっている、.が抜けているなど)」や「文字コード・改行コードの間違い」です。
特に、メモ帳で保存した際にBOM(バイトオーダーマーク)が付いてしまっているケースや、全角スペースが混入しているケースが多発しています。見えない文字が含まれていないか、開発者向けエディタで確認してください。
Apacheモジュールの有無
「RewriteRule」などの機能を使うには、Apacheのモジュール「mod_rewrite」が有効になっている必要があります。コマンド記述自体が合っていても、その機能を動かすためのプログラム(モジュール)がサーバー側でOFFになっていると動作しません。phpinfo()などでロード済みモジュールを確認するか、レンタルサーバーの仕様書をチェックしてください。
.htaccessに関するよくある質問
.htaccessはどこに置いておくべき?
設定を適用したいディレクトリの直下に置きます。
通常はWebサイトのルートディレクトリ(public_htmlなど一番上の階層)に置くのが一般的です。ここに置けば、サイト全体に効果が及びます。特定のサブディレクトリ(例:/member/)だけに認証をかけたい場合は、そのディレクトリの中に設置します。
WordPressでhtaccessが見つからないのはなぜですか?
隠しファイルになっているか、まだ生成されていない可能性があります。
「.」から始まるファイルは隠しファイル扱いになるため、FTPソフトの設定で「隠しファイルを表示する」オプションをONにしましょう。それでもない場合は、WordPressの管理画面で「設定 > パーマリンク設定」を開き、何も変更せずに「変更を保存」を押すと自動生成されます。
.htaccessの読み方は?
「ドット・エイチティアクセス」と読みます。
「ハイパーテキスト・アクセス」の略称に由来します。Web業界では単に「エイチティアクセス」と呼ぶことも多いです。
複数.htaccessの優先順位は?
下層ディレクトリの設定が優先されます。
例えば、ルートディレクトリと、その中のサブディレクトリの両方に.htaccessがある場合、サブディレクトリへのアクセスについては、サブディレクトリ内の.htaccessの設定が優先(上書き)されます。
.htaccessを使わない方がいいのはどんなとき?
httpd.confが編集可能な場合や、頻繁なアクセスがある大規模サイトの場合です。
サーバーの管理者権限(root権限)があるなら、主設定ファイル(httpd.conf)に記述する方がパフォーマンス面で有利です。また、知識が曖昧な状態で触るとサイト全体をダウンさせるリスクがあるため、初心者がむやみに触るのは避けるべきです。
まとめ
本記事では、.htaccessの活用方法や設定手順、使う際のポイントについて解説しました。
.htaccessとは、Webサーバーの動作をディレクトリ単位で制御するためのファイルです。リダイレクトやアクセス制限など、さまざまな指令を出すことができます。
ディレクトリ単位で制御できるため一見便利なように見えますが、記述方法を間違えるとうまく動作しません。したがって、.htaccessの理解を深め、正しい記述方法を覚える必要があります。
本記事で解説した、.htaccessの活用方法や記述方法を理解し、サイト運営に活かしてみましょう。
SEOに関して、何から着手すべきかわからない、なかなか成果がでないなどのお悩みがございましたら
SEO無料相談も受け付けておりますので、お気軽にお問合せください。
資料ダウンロード
SEO無料相談




















