WPFormsでフォームの保存やその他の操作を行う際に、"403 Forbidden "エラーが表示されていませんか?
このエラーは通常、サーバーがセキュリティルールや設定ミスによってリクエストをブロックしていることを意味します。最初は怖く感じるかもしれませんが、よくある原因がいくつかあり、明確な解決策を確認することができます。
このガイドでは、WPFormsで403エラーに遭遇する可能性のある最も頻繁な理由と、それらのトラブルシューティング方法について説明します。
403 Forbiddenエラーとは何ですか?
403エラーは、サーバーがあなたのリクエストを理解しているが、それを許可することを拒否していることを意味します。WPFormsでこれが発生する場合、通常はWordPressまたはホスティングサーバーによってブロックされているフォーム送信または保存アクションに関連しています。
こんなメッセージが表示されるかもしれない:
The form cannot be saved due to a 403 error
これは、AJAXリクエスト、特にドロップダウンのようなフィールドを追加または保存するときに発生する可能性があります。
WPFormsで403エラーが発生する一般的な原因
- 期限切れまたはNonceの欠落:WPForms は有効なセッションからのリクエストであることを確認するために nonce (セキュリティトークン) を使用します。このトークンがない、または期限切れの場合(多くの場合、ページのキャッシュが原因)、403エラーが発生する可能性があります。
- キャッシュと最適化プラグイン:WP Rocket、Autoptimize、LiteSpeed Cacheなどの最適化プラグインは、古いnonceトークンをキャッシュしたり、適切な検証に必要なスクリプトを遅延させたりすると、AJAXリクエストに干渉する可能性があります。
- サーバーレベルのセキュリティルール(ModSecurity):ホストによってはModSecurityのようなツールを使って不審なリクエストをブロックしています。場合によっては、正当なリクエスト("select "という単語を含むものなど)がSQLインジェクションの試みと誤認され、403エラーになることがあります。
- ファイルとフォルダのアクセス許可:サイトのファイルパーミッションが正しく設定されていない場合、サーバーが以下のような必要なファイルの実行をブロックする可能性があります。
admin-ajax.php
WPForms はバックグラウンドリクエストに依存しています。 - プラグインまたはテーマの競合:WPFormsと他のプラグインやサイトのテーマの競合もリクエスト失敗の原因になります。セキュリティやログインプラグインはこれらの競合の最も一般的な原因です。
トラブルシューティング
403エラーの原因を突き止め、解決するための手順をいくつかご紹介します:
- サイトのキャッシュをクリアする
- ブラウザのキャッシュとWordPressのキャッシュプラグインの両方をクリアする。
- ホストがサーバーサイドキャッシングを提供している場合は、それもクリアするか、サポートに連絡してください。
- インコグニートウィンドウまたは別のブラウザで試す
- これは、ローカルキャッシュの問題やブラウザの拡張機能を除外するのに役立ちます。
- 最適化またはセキュリティ・プラグインを一時的に無効にする
- Autoptimize、Wordfence、LiteSpeed Cacheなどのプラグインを1つずつ無効にする。
- 各変更の後、フォームが正しく保存または送信されるかテストしてください。
- ファイルパーミッションのチェック
- フォルダには通常
755
パーミッションが必要です。644
. - わからない場合は、ホスティングプロバイダーに問い合わせてください。
- フォルダには通常
- デフォルトテーマを使用し、他のすべてのプラグインを停止する
- Twenty Twenty-Fourのようなデフォルトのテーマに切り替える。
- WPForms以外のすべてのプラグインを無効にしてから、もう一度試してください。
- エラーが消えたら、プラグインを1つずつ有効化して競合を見つけます。
- ModSecurityについてホストに確認する
- それでも問題が解決しない場合は、ホスティングプロバイダーに連絡し、ModSecurityやその他のファイアウォールが以下のリクエストをブロックしていないか尋ねてください。
admin-ajax.php
. - エラーメッセージを提供し、ドロップダウンフィールドを持つWPFormsフォームを保存する際に403エラーが表示されることを説明してください。
- それでも問題が解決しない場合は、ホスティングプロバイダーに連絡し、ModSecurityやその他のファイアウォールが以下のリクエストをブロックしていないか尋ねてください。
- .htaccessのルールをチェックする
- 厳しすぎるセキュリティルールを探す標準的なワードプレス
.htaccess
ファイルは次のようになるはずだ:
- 厳しすぎるセキュリティルールを探す標準的なワードプレス
# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
まだ助けが必要ですか?
上記の手順を行ってもエラーが表示される場合は、サポートチームのTrusted Advisorまでお気軽にお問い合わせください。お知らせください:
- 正確なエラーメッセージ
- エラーが表示されるタイミング(フォームの保存時や送信時など)
- このガイドですでに試した手順
以上です!これでWPFormsの403 Forbiddenエラーのトラブルシューティングの方法がわかりました。
次に、トラブルシューティングのヒントをもっと知りたいですか?その他のチュートリアルをご覧ください: