🐨

Snow Monkey FormsでREST API 404エラーが出た!ConoHa WINGでの解決方法

に公開

WordPressで Snow Monkey Forms を使ったフォームが
An unexpected problem has occurred...」と表示されて動かなくなったことはありませんか?

特に ConoHa WING(LiteSpeedサーバー) 環境では、 /wp-json/404エラー を返すケースがよくあります。

この記事では、実際に発生した問題とその解決方法をまとめました。


問題の症状

環境

  • サーバー: ConoHa WING(LiteSpeed)
  • WordPress テーマ: Lightning(子テーマ)
  • フォームプラグイン: Snow Monkey Forms

エラー内容

  • トップページ下部・お問い合わせページのフォームが表示されず
    → 「An unexpected problem has occurred...」が表示
  • コンソールで
    /wp-json/snow-monkey-form/v1/view404エラー
  • /contact/ ページが 404 Not Found
  • /wp-json/ にアクセスすると 404
    ただし ?rest_route=/JSONを返す

試したこと(効果なし)

  • SiteGuardプラグイン削除
  • Autoptimize無効化
  • WAFオフ
  • パーマリンク設定を再保存

→ それでも改善せず。


原因の特定

調査の結果、.htaccess のリライトルール が原因でした。

ConoHa WINGのLiteSpeed環境では、以下の要因でREST APIがブロックされていました。

主な原因

  1. LiteSpeedキャッシュ設定

    • .htaccess
      SetEnvIf Request_URI ".*" Litespeed_note
      がREST APIリクエストを誤ってキャッシュ/ブロック。
  2. HTTP Authルール

    • RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
      [L](処理終了) がWordPressの標準ルールをスキップ。
  3. リライトルールの不整合

    • LiteSpeedサーバーで .htaccess が正しく更新されず、
      /wp-json//index.php にルーティングされない。

この結果、Snow Monkey Formsが依存する
/wp-json/snow-monkey-form/v1/view が404となり、フォームが動かなくなっていました。


解決方法

1. お問い合わせページをチェック

手順

  1. ページが存在する場合:
    • 編集画面の右サイドバーでスラッグを contact に固定
  2. 存在しない場合:
    • 新規作成(タイトル: お問い合わせ / スラッグ: contact)
    • Snow Monkey Formsブロックを挿入
  3. ページを更新しても404なら次へ

2. パーマリンクと .htaccess をリフレッシュ

パーマリンク再保存

  1. 管理画面 > 「設定」>「パーマリンク」
  2. 「プレーン」に変更して保存
  3. 再び「投稿名(/%postname%/)」に戻して保存

.htaccess を修正

ConoHa WING 管理画面 > ファイルマネージャー > /public_html/.htaccess を開く
バックアップを取ってから以下に置き換えます。

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

動作確認


3. LiteSpeedキャッシュをクリア

  • ConoHa管理画面 → 「サイト設定」→「キャッシュ」→「キャッシュクリア」を実行
  • LiteSpeed Cacheプラグイン を使っている場合:
    REST API(/wp-json/)を キャッシュ除外対象 に設定

結果

  • .htaccess を標準ルールに戻すことで REST APIが復旧
  • Snow Monkey Forms が正常に表示・送信可能に!
  • /wp-json/ → JSONを返す
  • /wp-json/snow-monkey-form/v1/view200 OK

なぜ問題が起きたのか?

イメージとしては…

レストラン(WordPress)で注文(REST APIリクエスト)を厨房(/index.php)に届けるはずが、
余計なスタッフ(LiteSpeed_note や HTTP Auth)が「この注文は無効!」と止めてしまった。

つまり:

  • 原因: .htaccess の不要ルールがREST APIをブロック
  • 背景: LiteSpeedのリライトルールはApacheと微妙に異なる
  • 解決: 標準ルールのみ残してシンプル化

予防策

パーマリンクの定期保存

管理画面 > 「設定」>「パーマリンク」で「保存」をクリックするだけでも効果あり。

キャッシュ管理の徹底

ConoHaのキャッシュクリア、またはLiteSpeed Cache設定でREST APIを除外。

.htaccess をシンプルに保つ

プラグインが追加するルール(例: SiteGuard、HTTP Auth)に注意。
編集前には必ずバックアップを。

REST APIテスト

エラー時は https://example.com/wp-json/ にアクセスして確認。

定期バックアップ

「All-in-One WP Migration」などでバックアップを取っておくようにする。


まとめ

状況 対応
フォームが「An unexpected problem...」 REST APIが404
ConoHa WING(LiteSpeed) .htaccess のルールが影響
解決策 標準のWordPressルールに戻す+キャッシュクリア
効果 /wp-json/ が復旧、Snow Monkey Forms動作OK

最後に

いつもは404エラーが出た際、パーマリンクの保存を押すだけで直っていたのですが、今回それではうまくいきませんでした。色々調べたり試したので、今後のためにもまとめておきました。

もし同じ症状で悩んでいる方がいたら、
一度 **.htaccess **を見直してみてください。

Discussion