【実録】WordPress移行でCSS/JSが全滅!犯人はテーマ内の.htaccessだった話

【実録】WordPress移行でCSS/JSが全滅!犯人はテーマ内の.htaccessだった話

WordPress移行でCSS/JSが全滅!犯人はテーマ内の.htaccessだった

WordPressをローカルからテスト環境に移行したら…

CSSもJSも全部消えた(真っ白)状態になりました。

さらにコンソールを見ると

  • 500エラーだらけ
  • 画像も読み込まれない

ここでかなりハマりました。

結論から言うと原因はこれです。

テーマフォルダ内に置いた .htaccess

これを削除したら一瞬で解決しました。

この記事では、実際に起きたエラー → 原因 → 解決方法を初心者向けに解説します。

現象の説明

今回やりたかったこと

  • ローカル(MAMP)→ テスト環境へ移行
  • All-in-One WP Migrationで移行

しかし

  • インポートできない
  • 手動移行したらデザイン崩壊

つまり

  • CSSが当たらない
  • JSが動かない
  • 画像も表示されない

サイトがほぼ崩壊状態になりました。

実際に起きたエラー

コンソールの内容

  • Failed to load resource: status 500
  • CSS / JS / 画像すべて失敗

ここが重要ポイントです。

  • 404ではない
  • 500エラー(サーバー側の問題)

結論(先に知りたい人向け)

テーマフォルダ内の .htaccess を削除する

これだけで解決します。

原因の詳細

原因はこれです。

/wp-content/themes/blog/.htaccess

本来

  • .htaccessはルートに置くもの

しかし今回は

  • テーマ内に配置してしまった

その結果

  • CSSやJSへのアクセスがブロック
  • サーバーが500エラーを返す

NGコード

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule .* - [F]
</IfModule>

なぜダメなのか

このコードの意味

  • RewriteRule .* – [F]

すべてのアクセスを拒否する設定です。

つまり

  • CSS → 拒否
  • JS → 拒否
  • 画像 → 拒否

すべてブロックされます。

さらにテーマ内にあるため

テーマ内ファイルだけ全滅します。

解決方法(ステップ形式)

STEP1:テーマフォルダに入る

/wp-content/themes/自分のテーマ/

STEP2:.htaccessを探す

STEP3:削除する

.htaccess を削除します。

STEP4:ブラウザ更新

  • Ctrl + F5(強制リロード)

結果

  • CSS → 正常
  • JS → 正常
  • 画像 → 表示OK

完全に復旧しました。

なぜ解決するのか(比較)

状態内容
修正前.htaccessがアクセス拒否
修正後通常アクセス可能

通信が正常に通るようになっただけです。

初心者向けまとめ

今回のポイント

  • エラーはコードだけが原因ではない
  • アクセス制御も重要

「エラーは嘘をつかない」という視点が大事です。

よくあるミス

  • .htaccessを適当に配置する
  • コピペで意味を理解しない
  • ルートとテーマの違いを知らない

初心者がよくやるミスです。

今回のポイントまとめ

  • CSS/JSが読み込まれない → コンソールを見る
  • 500エラー → サーバー側の問題
  • .htaccess → 強力な設定ファイル
  • テーマ内に置くのは基本NG

まとめ

今回の教訓

灯台下暗しです。

  • PHPを疑う前に
  • JSを疑う前に

まずはファイル構成を確認しましょう。

一言

原因さえ分かれば、こういったエラーはすぐ解決できます。

同じ現象で悩んでいる場合は、まず .htaccess を疑ってみてください。

Category

関連記事