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エラーは、ファイルをリネームして無効化すると即座に確認できます。問題が確認できたら、パーマリンク保存で自動再生成するか、標準コードを手動で貼り付けて解決します。
関連記事: