J'essaie de déboguer un problème intermittent 404 pouvant être lié à BBPress. J’ai lu plusieurs autres rapports sur les 404 et BBPress intermittents, mais aucun d’entre eux ne s’applique exactement à ma situation. Je pose donc une nouvelle question.
La page principale de mon site Web se chargera par intermittence d'un 404. Le problème d'accès intermittent semble durer entre 10 secondes et 3 minutes à la fois. Lorsque cela se produit, toutes les personnes qui tentent d’accéder au site ne sont pas au rendez-vous (confirmé au téléphone avec l’assistance technique du service d’hébergement). Les autres pages du site semblent se charger correctement pendant cette fenêtre temporelle. Frapper rafraîchir finira par recharger correctement la page.
J'utilise le moniteur de requêtes pour examiner les règles de réécriture. Voici les résultats lorsque le chargement de la page est incorrect:
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
Voici les résultats lorsque la page se charge correctement:
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)
Voici la requête la plus pertinente exécutée au cours de la 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
Voici la requête exécutée lorsque la page est chargée avec succès:
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
Lorsque je regarde le code BBPress, je peux identifier les règles de réécriture ici:
// Rewrite rule matches used repeatedly below
$root_rule = '/([^/]+)/?$';
$feed_rule = '/([^/]+)/' . $feed_slug . '/?$';
$edit_rule = '/([^/]+)/' . $edit_slug . '/?$';
$paged_rule = '/([^/]+)/' . $paged_slug . '/?([0-9]{1,})/?$';
Cependant, toutes les limaces sont correctement définies dans la base de données et je ne peux pas comprendre comment elles pourraient être corrompues. Je ne trouve pas la règle de réécriture exacte répertoriée dans les résultats du moniteur de requêtes, ni dans le code principal, ni dans le code du plug-in.
Information additionnelle:
Des suggestions pour plus de dépannage?
Il y a un problème connu avec LearnDash et bbPress/BuddyPress qui peut être la cause, j'ai rencontré la même chose moi-même. Exaspérant! Et cela est proportionnel au nombre d'événements BP générés. Par conséquent, plus l'activité de l'utilisateur est importante, plus elle se produit. Détails dans le site de support LearnDash ici .
J'ai utilisé le code suivant pour corriger:
// Fix for LearnDash causing 404s on BuddyPress activity (updates, messages)
add_filter( "learndash_flush_rewrite_rules", function( $flush, $post_options ) {
return true;
}, 4, 2 );