私はBBPressに関連している可能性がある断続的な404の問題をデバッグしようとしています。断続的な404やBBPressに関する他のレポートをいくつか読んだことがありますが、どれも私の状況に正確には当てはまらないので、新しい質問をします。
私のウェブサイトのメインページは断続的に404でロードされます。断続的なアクセスの問題は一度に10秒から3分の間持続するように見えます。これが起こると、誰もがそのサイトにアクセスしようとしていることになります(ホスティングサービスの技術サポートを受けている間に電話で確認されます)。この時間帯にサイトの他のページが正しく読み込まれるように見えます。更新を押すと、最終的にページが正しく再ロードされます。
書き換え規則を調べるためにQuery Monitorを使用しています。ページが正しくロードされていない場合の結果は次のとおりです。
Request account-2/conscious-business-design-dashboard
Matched Rule [^/]+/([^/]+)/?$
Matched Query attachment=conscious-business-design-dashboard
Query String attachment=conscious-business-design-dashboard
Query Vars attachment conscious-business-design-dashboard
comments_per_page 50
name conscious-business-design-dashboard
order DESC
posts_per_page 10
update_post_meta_cache 1
update_post_term_cache 1
ページが正しく読み込まれたときの結果は次のとおりです。
Request account-2/conscious-business-design-dashboard
Matched Rule (.?.+?)(?:/([0-9]+))?/?$
Matched Query pagename=account-2%2Fconscious-business-design-dashboard
&page=
Query String pagename=account-2%2Fconscious-business-design-dashboard
Query Vars comments_per_page 50
name conscious-business-design-dashboard
order DESC
pagename conscious-business-design-dashboard
posts_per_page 10
update_post_meta_cache 1
update_post_term_cache 1
Queried Object
Single Page: #225 (WP_Post)
これは404の間に実行されている最も関連した問い合わせです:
SELECT wp_posts.*
FROM wp_posts
WHERE 1=1
AND wp_posts.post_name = 'conscious-business-design-dashboard'
AND wp_posts.post_type = 'attachment'
ORDER BY wp_posts.post_date DESC
これは、ページが正常にロードされたときに実行されるクエリです。
SELECT wp_posts.*
FROM wp_posts
WHERE 1=1
AND (wp_posts.ID = '225')
AND wp_posts.post_type = 'page'
ORDER BY wp_posts.post_date DESC
BBPressのコードを見ると、書き換え規則をここで確認できます。
// Rewrite rule matches used repeatedly below
$root_rule = '/([^/]+)/?$';
$feed_rule = '/([^/]+)/' . $feed_slug . '/?$';
$edit_rule = '/([^/]+)/' . $edit_slug . '/?$';
$paged_rule = '/([^/]+)/' . $paged_slug . '/?([0-9]{1,})/?$';
しかし、すべてのナメクジがデータベースに正しく設定されているため、それらがどのように破損しているのかを特定することはできません。 Query Monitorの結果にリストされている正確な書き換え規則が、コアコードまたはプラグインコードのどちらにも見つかりません。
追加情報:
さらなるトラブルシューティングのための何か提案はありますか?
これを引き起こすことができるLearnDashとbbPress/BuddyPressに既知の問題があります、私は私自身同じことに遭遇しました。マデニング!そしてそれは生成されているBPイベントの数に比例するので、あなたがより多くのユーザアクティビティを持っているほど、それはより多く発生します。 LearnDashサポートサイト の詳細はこちら 。
次のコードを使って修正しました。
// Fix for LearnDash causing 404s on BuddyPress activity (updates, messages)
add_filter( "learndash_flush_rewrite_rules", function( $flush, $post_options ) {
return true;
}, 4, 2 );