WordPressの設定やトラブル対処を調べていると、「.htaccessを編集する」「.htaccessを再生成する」といった説明が出てきます。
.htaccessは、Apache系のWebサーバーで特定のディレクトリ単位の設定を行うためのファイルです。WordPressでは特に、パーマリンクのURL書き換えに関係します。
30秒でわかる結論
- .htaccessはApache系Webサーバーで使うディレクトリ単位の設定ファイル
- WordPressでは主に「きれいなパーマリンク」を動かすURL書き換えに使われる
- リダイレクト、アクセス制限、一部のセキュリティ設定などにも使える
- Nginxは.htaccessを読み込まないため、Nginx側の設定ファイルで同等の処理を行う
- WordPress管理画面の「設定 → パーマリンク」を保存すると、環境によって.htaccessのルールが更新される
- 記述ミスは500エラーなどの原因になるため、編集前に必ずバックアップする
- 初心者は、必要もないのに.htaccessを手作業で編集しない方が安全
.htaccessとは?
.htaccessは、Apache HTTP Serverで使われる分散設定ファイルです。
通常のサーバー設定は管理者がWebサーバー全体の設定ファイルで行いますが、.htaccessを利用できる環境では、特定のディレクトリとその配下だけに設定を適用できます。
初心者向けに言うと
「このフォルダ以下ではURLを書き換える」「この場所へのアクセスを制限する」といったルールを、Webサイト側のディレクトリ単位で指定するためのファイルです。
ファイル名の先頭が「.」で始まるため、FTPソフトやファイルマネージャーの設定によっては隠しファイルとして表示されないことがあります。
WordPressでは何に使われる?
WordPressで最も代表的なのは、パーマリンクのURL書き換えです。
たとえば次のようなURLを使う場合です。
例
- https://example.com/sample-post/
- https://example.com/category/news/
- https://example.com/2026/10/sample/
Apache環境では、WordPressが生成したURL書き換えルールを.htaccessへ記述し、存在するファイル・ディレクトリ以外のリクエストをWordPressへ渡します。
WordPressの標準的な.htaccessには何が書かれる?
WordPress公式では、Apache環境向けにパーマリンクを動かすためのrewriteルールが案内されています。
内容の中心は、次のような処理です。
- URL書き換え機能を有効にする
- 実在するファイルはそのまま表示する
- 実在するディレクトリもそのまま扱う
- それ以外のURLをWordPressのindex.phpへ渡す
コードを丸暗記する必要はない
初心者は、標準ルールの1行ずつを暗記する必要はありません。「WordPressのパーマリンクをApache上で動かすためのURL振り分けが書かれている」と理解すれば十分です。
.htaccessとパーマリンクの関係
WordPressでは、「設定 → パーマリンク」で「基本」以外のURL構造を使う場合、Apacheでは通常mod_rewriteと.htaccessのルールを利用します。
| URL例 | 考え方 |
|---|---|
| ?p=123 | クエリ文字列を使う基本形式 |
| /sample-post/ | rewriteを使うきれいなURL |
| /category/news/ | WordPressがURLを解析して表示 |
パーマリンク変更後に特定ページだけ404になる場合、WordPressのrewriteルールが正しく反映されていないことがあります。
まず確認すること
- WordPress管理画面の「設定 → パーマリンク」を再保存する
- .htaccessへ書き込みできる環境か確認する
- Apacheのmod_rewriteが利用できるか確認する
- レンタルサーバー固有の設定がないか公式マニュアルを見る
.htaccessでできる主なこと
| 用途 | 内容 |
|---|---|
| URL書き換え | WordPressのパーマリンクなど |
| リダイレクト | 旧URLから新URLへ転送する |
| アクセス制限 | 特定ファイル・ディレクトリへのアクセスを制御する |
| 認証 | 環境によってBasic認証などに利用する |
| 一部ヘッダー設定 | 対応モジュールが有効ならHTTPヘッダーを設定する |
何でも書けば動くわけではない
.htaccessで使用できる命令は、Apacheの設定や有効なモジュール、AllowOverrideの設定によって異なります。ネット上のコードをそのまま貼っても動かない場合があります。
.htaccessとNginxの違い
.htaccessはApache系の仕組みです。Nginxは.htaccessを読み込みません。
| 項目 | Apache | Nginx |
|---|---|---|
| .htaccess | 利用可能 | 利用しない |
| WordPressパーマリンク | .htaccessなどでrewrite | server/location設定で対応 |
| 設定場所 | ディレクトリ単位でも設定可 | サーバー設定ファイル側 |
そのため、Apache環境からNginx環境へ移転するときは、既存の.htaccessをそのままコピーしても同じ動作にはなりません。
共用レンタルサーバーなら深く考えなくてよい場合もある
サーバー会社がWordPress向けの設定を用意している場合、利用者がApache・Nginxの設定を直接変更しなくてもWordPressが正常に動くようになっています。
.htaccessはどこにある?
一般的なWordPress環境では、WordPressを設置したディレクトリに.htaccessが置かれます。
例
WordPress本体のindex.php、wp-admin、wp-content、wp-includesなどがある階層に.htaccessが存在する構成があります。
ただし、サーバー構成によって設置場所は異なります。
また、先頭がドットのファイルは隠しファイルとして扱われるため、FTPソフトやファイルマネージャーで「隠しファイルを表示」を有効にしないと見えない場合があります。
.htaccessが見つからない場合
.htaccessが見当たらないからといって、すぐ異常とは限りません。
確認ポイント
- 隠しファイル表示が無効になっていないか
- WordPressを設置した正しいディレクトリを見ているか
- Nginxなど.htaccessを使わない環境ではないか
- まだWordPressが.htaccessを書き出していない状態ではないか
- レンタルサーバー側で別方式の設定になっていないか
Apache環境でパーマリンク設定を使っている場合、WordPress管理画面から「設定 → パーマリンク」を保存すると、書き込み可能な環境ではルールが更新されることがあります。
.htaccessを編集するときの注意点
編集前に必ずバックアップする
.htaccessは1文字の記述ミスでもサイト全体に影響する場合があります。編集前に必ず元ファイルを保存してください。
一度に複数の変更をしない
リダイレクト、アクセス制限、高速化、セキュリティ設定を同時に追加すると、エラーが出たとき原因を特定しにくくなります。
「# BEGIN WordPress」内を不用意に書き換えない
WordPressやプラグインが管理する範囲は、設定変更時に再生成・上書きされることがあります。独自設定を追加する場合は、どの範囲が自動管理されるか確認してください。
ネット上の古い設定をコピーしない
Apacheのバージョン、利用中のモジュール、レンタルサーバー仕様によって有効な書き方が異なります。古いアクセス制御構文などが現在の環境に適さないこともあります。
.htaccessの記述ミスで起こる症状
.htaccessに不正な命令や構文ミスがあると、Apacheがリクエストを正しく処理できず、500 Internal Server Errorなどが発生することがあります。
| 症状 | 確認すること |
|---|---|
| サイト全体が500エラー | 直前に.htaccessを編集していないか |
| 特定URLだけ404 | rewrite・パーマリンク設定 |
| リダイレクトループ | 複数の転送ルールが競合していないか |
| 管理画面へ入れない | アクセス制限・リダイレクト設定 |
いきなり削除しない
.htaccessにはWordPressのパーマリンク以外にも、アクセス制限・リダイレクト・セキュリティ設定が含まれている場合があります。原因調査では削除するのではなく、バックアップを取ったうえで一時的に別名へ変更する方法があります。
.htaccessが原因か確認する基本手順
この方法はApache系の環境を前提にした切り分けです。サーバー会社独自の設定やセキュリティ機能がある場合は、公式マニュアルを優先してください。
初心者が自分で編集してよい?
通常のWordPress運営では、.htaccessを頻繁に手編集する必要はありません。
パーマリンク設定はWordPress管理画面から行えば十分なケースが多いです。
リダイレクトやアクセス制御で触る場合がありますが、変更履歴とバックアップを残します。
ApacheからNginxなど環境が変わる場合、既存ルールをそのまま使えるとは限りません。
Webサーバー設定との関係まで理解した方が安全です。
.htaccessとwp-config.phpの違い
| 項目 | .htaccess | wp-config.php |
|---|---|---|
| 主な役割 | Webサーバーのディレクトリ設定 | WordPress本体の基本設定 |
| 扱う例 | rewrite・リダイレクト・アクセス制御 | DB接続情報・WordPress定数 |
| Apache依存 | 主にApache系で利用 | Apache/Nginxに関係なくWordPressで利用 |
| 記述形式 | Apacheディレクティブ | PHP |
どちらも重要なファイルですが、役割はまったく違います。
教科書判定
初心者は「.htaccess=ApacheでWordPressのURL振り分けなどを行う設定ファイル」と覚えれば十分
一般的な共用レンタルサーバー利用者は、.htaccessのコードを暗記したり、普段から手作業で編集したりする必要はありません。
WordPressで特定ページだけ404になる、500エラーが出る、リダイレクトを設定する、といった場面で初めて確認対象にしてください。
編集する場合は、必ずバックアップを取り、1項目ずつ変更します。Nginx環境では.htaccess自体を使わないため、サーバー方式を確認してから対処してください。
FAQ
Q..htaccessは削除しても大丈夫ですか?
安易に削除しないでください。WordPressのパーマリンク、リダイレクト、アクセス制限などが含まれている場合があります。トラブル調査ではバックアップ後に一時的に別名へ変更する方が安全です。
Q..htaccessがないとWordPressは動きませんか?
必ずしもそうではありません。Nginxでは.htaccessを使いません。また、ApacheでもURL構造やサーバー設定によって動作が異なります。
Q.パーマリンクを保存すると.htaccessは更新されますか?
Apache環境でWordPressが.htaccessへ書き込める場合、パーマリンク設定の保存によってrewriteルールが更新されます。書き込み権限などの条件によっては自動更新できないことがあります。
Q..htaccessを編集したら500エラーになりました。どうしますか?
まず編集前のバックアップへ戻してください。バックアップがある場合は元に戻し、追加した記述を1つずつ確認します。原因不明ならサーバーのエラーログや公式サポートも確認します。
Q.Nginxでも.htaccessを使えますか?
使いません。Nginxではserver blockやlocationなどのサーバー設定側に同等のルールを記述します。Apache用.htaccessをそのままコピーしても機能しません。
まとめ
この記事の結論
- .htaccessはApache系Webサーバーのディレクトリ単位設定ファイル
- WordPressでは主にパーマリンクのURL書き換えに使われる
- リダイレクトやアクセス制御などにも利用できる
- Nginxは.htaccessを読み込まない
- パーマリンク再保存でrewriteルールが更新される環境がある
- 記述ミスは500エラーや404、リダイレクトループの原因になる
- 編集前は必ずバックアップし、一度に複数変更しない
- 通常の初心者は必要なときだけ確認すれば十分
「wp-config.phpとは?役割・確認ポイント・注意点」もあわせて確認してください。