web-dev-qa-db-ja.com

Contact Form 7によりHTTP 500エラーが発生する

誰もフォームを送信できないため、フォームを確認したところ、POST 500内部サーバーエラーが発生しました。

POST http://carlsbad4rent.com/wp-json/contact-form-7/v1/contact-forms/321/feedback 500(内部サーバーエラー)

enter image description here

注:同じコードがlocalhost [wamp]でもうまく機能しています

6

.htaccessファイルと "wordpress"として設定されたローカルセットアップフォルダー名を変更する必要がありますが、ライブサイトではこの名前を変更する必要があります。

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /agilitycards/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /agilitycards/index.php [L]
</IfModule>

# END WordPress

.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
5

同様の問題がありましたが、cpanelにインストールされているModSecurityがエラーの原因であることがわかりました。 ModSecurityを無効にするとうまくいきました。私の研究では、サーバーのセキュリティモジュールが原因で発生する同様の問題に遭遇しました case オールインワンのセキュリティとファイアウォールが原因です。

0
Lazarus-CG

私も同じ問題を抱えていました。それは、使用しているPolylangプラグイン、特に翻訳する文字列の登録方法に関連していることがわかりました。

テストする簡単な方法は、テーマを無効にするか、デフォルトのテーマを有効にすることです。お問い合わせフォームが機能する場合は、テーマの関数ファイルに問題がある可能性が高いです。

私にとっての修正は、次のようにfunctions.phpでPolylangの翻訳を設定することでした。

if (function_exists("pll_register_string")) {
    pll_register_string( 'name', 'Translated string' );
}
0
Charlieman

お問い合わせフォーム7の送信時に500ステータスコードもありました。「wp-includes」の「class-phpmailer.php」ファイルのファイル権限が「0」でした。なぜだかわかりません。しかし、私はファイルの権限を0644に変更することでこの問題を修正し、Contact Form 7が再びうまく機能するようになりました。

0
UXguy