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/view
が 404エラー -
/contact/
ページが 404 Not Found -
/wp-json/
にアクセスすると 404
ただし?rest_route=/
は JSONを返す
試したこと(効果なし)
- SiteGuardプラグイン削除
- Autoptimize無効化
- WAFオフ
- パーマリンク設定を再保存
→ それでも改善せず。
原因の特定
調査の結果、.htaccess のリライトルール が原因でした。
ConoHa WINGのLiteSpeed環境では、以下の要因でREST APIがブロックされていました。
主な原因
-
LiteSpeedキャッシュ設定
-
.htaccess
の
SetEnvIf Request_URI ".*" Litespeed_note
がREST APIリクエストを誤ってキャッシュ/ブロック。
-
-
HTTP Authルール
-
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
の [L](処理終了) がWordPressの標準ルールをスキップ。
-
-
リライトルールの不整合
- LiteSpeedサーバーで
.htaccess
が正しく更新されず、
/wp-json/
が/index.php
にルーティングされない。
- LiteSpeedサーバーで
この結果、Snow Monkey Formsが依存する
/wp-json/snow-monkey-form/v1/view
が404となり、フォームが動かなくなっていました。
解決方法
1. お問い合わせページをチェック
手順
- ページが存在する場合:
- 編集画面の右サイドバーでスラッグを
contact
に固定
- 編集画面の右サイドバーでスラッグを
- 存在しない場合:
- 新規作成(タイトル: お問い合わせ / スラッグ: contact)
- Snow Monkey Formsブロックを挿入
- ページを更新しても404なら次へ
.htaccess
をリフレッシュ
2. パーマリンクと パーマリンク再保存
- 管理画面 > 「設定」>「パーマリンク」
- 「プレーン」に変更して保存
- 再び「投稿名(/%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
動作確認
- https://example.com/contact/ → ページが表示されるか
- https://example.com/wp-json/ → JSONを返すか
- ブラウザのコンソールで
/wp-json/snow-monkey-form/v1/view
→ 200 OK
3. LiteSpeedキャッシュをクリア
- ConoHa管理画面 → 「サイト設定」→「キャッシュ」→「キャッシュクリア」を実行
-
LiteSpeed Cacheプラグイン を使っている場合:
REST API(/wp-json/
)を キャッシュ除外対象 に設定
結果
-
.htaccess
を標準ルールに戻すことで REST APIが復旧 - Snow Monkey Forms が正常に表示・送信可能に!
-
/wp-json/
→ JSONを返す -
/wp-json/snow-monkey-form/v1/view
→ 200 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