2026年5月20日
2026年5月20日
.htaccessの再生成で404エラーを解決する方法【FTPで修正】
はじめに
WordPressの.htaccessファイルはURLの書き換え(Rewrite)を担当する重要なファイルです。このファイルが壊れていたり、誤って削除されたりすると、投稿や固定ページのURLが全て404エラーになります。手動で正しい内容に修正することで解決できます。
症状・原因
.htaccessが原因の404の特徴:
- トップページ(
/index.php)は表示されるが、他のURLは全て404 /?p=123形式のURLは表示されるが、スラッグ付きURLが404- FTP確認で
.htaccessファイルがない(隠しファイル非表示の設定でも確認できない) .htaccessはあるが内容がWordPressの標準設定と異なる
解決手順
ステップ1:管理画面からパーマリンクを再保存
まず最も簡単な方法を試します:
1. WordPress管理画面 → 「設定」→「パーマリンク設定」
2. 「変更を保存」ボタンをクリック(設定変更不要)
これで.htaccessが自動再生成されます。管理画面にアクセスできる場合はこれで解決することがほとんどです。
ステップ2:FTPで.htaccessを確認する
管理画面での操作で解決しない場合、FTPクライアント(FileZillaなど)でサーバーに接続します。
重要:隠しファイルを表示する設定をオンにする
FileZillaの場合:
- 「サーバー」→「隠しファイルを表示する」にチェック
WordPressをインストールしたルートディレクトリ(通常public_html/またはwww/)に.htaccessファイルがあるか確認します。
ステップ3:.htaccessを手動で作成・修正する
ファイルがない場合: 新規作成して以下の内容を貼り付けます。
ファイルがある場合: 内容を以下に置き換えます(バックアップを取ってから)。
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
サブディレクトリインストールの場合:
WordPressが/blog/などのサブディレクトリにある場合:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /blog/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /blog/index.php [L]
</IfModule>
# END WordPress
ステップ4:ファイルのパーミッションを確認する
.htaccessのパーミッションは644が正しい設定です。FTPクライアントで右クリックして確認・変更します。
.htaccess のパーミッション:644(推奨)
または 604(一部のサーバーで必要な場合)
444(読み取り専用)になっていると管理画面から自動更新できないため、644に変更します。
ステップ5:mod_rewriteの確認
.htaccessの設定が正しくても、サーバーでmod_rewriteが有効でなければRewriteルールは動作しません。
確認方法:
- ホスティング管理画面(cPanelなど)で「mod_rewrite」の有効化設定を探す
- WordPress管理画面「ツール」→「サイトヘルス」の情報タブでmod_rewriteの状態を確認
phpinfo()の出力でLoaded Modulesにmod_rewriteがあるか確認
共有ホスティングでmod_rewriteが使えない場合、ホスティング会社のサポートに問い合わせてください。
.htaccessのよくある誤記
書き間違えやすい箇所:
# ❌ 間違い例:RewriteBaseのスラッシュ抜け
RewriteBase ← /が必要
# ❌ 間違い例:RewriteRuleのスペルミス
RewriteRULE ← 大文字小文字は関係ないが確認
# ❌ 間違い例:# BEGIN WordPressと# END WordPressの内側に他の設定を入れている
# BEGIN WordPress と # END WordPress の間はWordPressが自動管理するため
# 独自の設定はこの範囲の外に書く
まとめ
.htaccessが原因の404エラーは、標準的な内容のファイルを用意してサーバーに設置し、パーマリンクを再保存することで解決できます。まずは管理画面からの再保存を試し、それで解決しない場合にFTPからの手動修正を行ってください。
関連記事: