2026年5月20日

2026年5月20日

.htaccessファイルが原因の500エラー解決方法

はじめに

WordPress の .htaccess ファイルが破損したり、不正な設定が追加されたりすると、500 Internal Server Error が発生します。これは500エラーの中で最も多い原因の一つです。確認と対処が簡単なので、500エラーが出たらまず最初に確認しましょう。

.htaccessが原因と考えられる状況

  • セキュリティプラグイン(Wordfence等)のインストール・変更後
  • キャッシュプラグインの設定変更後
  • .htaccess を手動で編集した後
  • マルウェア感染後(不正コードが追加される)
  • サーバー移転後

手順1:.htaccessを一時的に無効化する

FTPクライアント(FileZilla等)でサーバーに接続し、WordPressのルートディレクトリにある .htaccess ファイルをリネームします:

.htaccess → .htaccess_backup

リネーム後にサイトを再読み込みして確認:

  • 復旧した → .htaccess が原因(手順2へ)
  • まだ500エラー → .htaccess は原因ではない(別の原因を調査)

手順2:新しい.htaccessを作成する

管理画面にアクセスできる場合:

1. 設定パーマリンク設定

2. 何も変更せず 「変更を保存」 をクリック

3. WordPress が標準の .htaccess を自動生成

管理画面にアクセスできない場合は、FTP で新しい .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

手順3:不正コードの確認と削除

バックアップした .htaccess_backup をテキストエディタで開き、標準コードの外に追加されたコードがないか確認します:

# BEGIN WordPress
... (標準コード)
# END WordPress

# ← ここ以降に追加されたコードがあれば要確認
Options -Indexes        # これはOK(ディレクトリリスト無効)
php_value max_execution_time INVALID   # ← こういったものは削除

セキュリティプラグインが追加するコードは通常無害ですが、マルウェアが追加したコードは削除が必要です。

Nginx を使っているサーバーの場合

Nginx サーバーでは .htaccess は機能しません。Nginx の設定ファイルを確認する必要があります。VPS・専用サーバーをお使いの場合はホスティング会社に相談してください。

.htaccessのパーミッション確認

.htaccess のパーミッションが適切でない場合もエラーの原因になります:

推奨パーミッション:644

FTP クライアントでファイルを右クリック → 「パーミッションの変更」で 644 に設定します。

注意事項

  • .htaccess を削除しないでください。リネーム(名前変更)で無効化するだけにしてください。削除すると元に戻すのが手間です。
  • 変更前にファイルのバックアップをローカルにダウンロードしておきましょう。

まとめ

.htaccess が原因の500エラーは、ファイルをリネームして無効化すると即座に確認できます。問題が確認できたら、パーマリンク保存で自動再生成するか、標準コードを手動で貼り付けて解決します。

関連記事:

お気軽にご相談ください

お見積りへ お問い合わせへ