Ce sujet est résolu. Voici une description du problème et de la solution.
Problème :
Vous rencontrez des erreurs 404 sur les URL des pages traduites après avoir activé le plugin Newsletter, SMTP, Email marketing and Subscribe forms by Brevo. L'erreur survient après la première consultation et actualisation de la page.
Solution :
Le problème provient de l'appel trop fréquent de la fonction flush_rewrite_rules(true) par le plugin de Brevo. Nous vous recommandons de contacter l'auteur du plugin pour résoudre ce problème de manière définitive. En attendant, vous pouvez appliquer une solution temporaire :
1. Accédez au fichier functions.php de votre thème enfant via FTP (n'oubliez pas de faire une sauvegarde de ce fichier).
2. Ajoutez le code suivant :
add_filter('mod_rewrite_rules', 'fix_rewritebase'); function fix_rewritebase($rules){ $home_root = parse_url(home_url()); if ( isset( $home_root['path'] ) ) { $home_root = trailingslashit($home_root['path']); } else { $home_root = '/'; } $wpml_root = parse_url(get_option('home')); if ( isset( $wpml_root['path'] ) ) { $wpml_root = trailingslashit($wpml_root['path']); } else { $wpml_root = '/'; } $rules = str_replace("RewriteBase $home_root", "RewriteBase $wpml_root", $rules); $rules = str_replace("RewriteRule . $home_root", "RewriteRule . $wpml_root", $rules); return $rules; }
Si cette solution ne résout pas votre problème ou si elle devient obsolète, nous vous recommandons de vérifier les problèmes connus, de confirmer que vous avez installé les dernières versions de vos thèmes et plugins, et d'ouvrir un nouveau ticket de support si nécessaire.
Il s'agit du forum d'assistance technique de WPML, le plug-in multilingue pour WordPress.
Il est accessible à tous, toutefois seuls les clients de WPML peuvent y publier leurs messages. L'équipe du WPML répond sur le forum 6 jours par semaine, 22 heures par jour.
Marqué : Compatibility
Ce sujet contient 11 réponses, a 2 voix.
Dernière mise à jour par Nicolas V. Il y a 6 mois.
Assisté par: Nicolas V..
Auteur | Articles |
---|---|
juin 27, 2024 à 12:26 pm #15843825 | |
mathiasJ-2 |
Contexte de la question: Symptômes: Questions: |
juin 27, 2024 à 2:18 pm #15844706 | |
Nicolas V. Supporter
Les langues: Anglais (English ) Français (Français ) Fuseau horaire: America/Lima (GMT-05:00) |
Bonjour, Merci d'avoir contacté le support de WPML. Généralement les erreurs 404 sur des URLs existantes sont dû au fait que WordPress n'arrive pas à résoudre l'url. 1. Allez dans "Réglages > Permaliens" pour les sauvegarder à nouveau. 2. Il se peut que deux types de contenus donne la même structure d'URL. Je vous donne un exemple: Si vous avez un Custom Post Type /team pour les membres de votre équipe et que vous avez aussi une page /team 3. UN autre point car vous mentionnez les produits: Allez dans "WooCommerce > WooCommerce Multilingual > Statut" et vérifiez que les pages du magasin WooCommerce soit traduites. 4. J'ai visité le site sans avoir de 404, mais peut être que vous avez désactivé ce plugin? De plus, je ne trouve pas ce plugin dans la liste des plugins compatibles. Cela ne signifie pas qu'il soit incompatible, mais c'est juste que nous ne l'avons pas testé et nous n'avons pas de documentation. Cependant j'ai trouvé d'anciens tickets sur le forum (je pense que à l'époque le plugin était "by sendinblue") et les problèmes reportés sont de traduction des options et non de 404. IMPORTANT: Avant de continuer, faites un backup complet de votre site et base de données. |
juin 27, 2024 à 11:22 pm #15847098 | |
Nicolas V. Supporter
Les langues: Anglais (English ) Français (Français ) Fuseau horaire: America/Lima (GMT-05:00) |
Bonjour, Merci pour l'accès. Voici une vidéo avec mes commentaires: lien caché - J'ai noté que l'erreur 404 ne provient pas de WordPress mais de votre serveur. Merci de contacter votre hébergeur pour voir s'il y a un problème ou un restriction au niveau du serveur. Comme test rapide, il suffit de passer les format d'URL de répertoire (/en) à paramètre (?lang=en) pour voir que les 404 disparaissent. |
juin 30, 2024 à 5:21 pm #15862965 | |
mathiasJ-2 |
Bonjour Nicolas, Après des tests complémentaires, le problème vient bien du plugin de Brevo. Je vous tiens informé si je trouve comment résoudre le souci définitivement. Merci en tout cas pour vos investigations. Mathias |
juillet 1, 2024 à 12:11 pm #15868454 | |
Nicolas V. Supporter
Les langues: Anglais (English ) Français (Français ) Fuseau horaire: America/Lima (GMT-05:00) |
Bonjour Mathias, Je laisse le ticket ouvert en attente de votre feedback. Merci de me tenir informé. |
juillet 2, 2024 à 2:43 pm #15876404 | |
mathiasJ-2 |
Bonjour Nicolas, Je continue mes investigations et le problème vient bien du fichier .htaccess avec les instructions de gestion des URL. C'est vraiment étrange car j'ai des modifications de ce fichier toutes les minutes avec une traduction automatique des commentaires dans ce fichier. Ce texte est traduit automatiquement toutes les minutes : # BEGIN WordPress Je ne vois pas trop qui pourrait venir ce commentaire hormis WPML. Et surtout, j'ai ces 2 lignes qui s'ajoute et disparaisse de manière aléatoire sans que j'arrive à identifier le déclencheur. Est-ce des instructions ajouter habituellement par WPML pour gérer les URL des langues dans les permaliens ? Sinon, je vais contacter Brevo en parallèle car je confirme que le souci des 404 n'apparait que quand leur plugin est activé. Si vous avez une idée ou des précisions pour ces instructions dans le htaccess, je suis preneur. Sinon, je vous tiens informé des mes investigations avec Brevo. Merci, |
juillet 2, 2024 à 8:50 pm #15878168 | |
Nicolas V. Supporter
Les langues: Anglais (English ) Français (Français ) Fuseau horaire: America/Lima (GMT-05:00) |
Bonjour, Pour les commentaires en FR c'est normal car avec WPML vous déclarez utiliser WP en FR. Par contre par défaut les règles de "rewrite" devraient être: <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> Est-il possible de prendre une copie de votre site pour tester cela sur nos serveurs? Une fois le problème résolu, j'éliminerai cette copie. Dites moi si vous êtes d'accord. |
juillet 3, 2024 à 10:29 pm #15887165 | |
Nicolas V. Supporter
Les langues: Anglais (English ) Français (Français ) Fuseau horaire: America/Lima (GMT-05:00) |
Bonjour, Merci, j'installe cette copie sur nos serveurs et je reviens vers vous dès que j'ai un feedback. |
juillet 5, 2024 à 1:06 am #15894522 | |
Nicolas V. Supporter
Les langues: Anglais (English ) Français (Français ) Fuseau horaire: America/Lima (GMT-05:00) |
Bonjour, Désolé pour le délai mais j'ai eu du mal à installer votre copie sur nos serveurs. J'ai essayé de multiples fois mais j'ai toujours un timeout. Vidéo: lien caché Au final j'ai installé la copie en local sur ma machine pour voir si elle fonctionnait: Avez-vous des instructions précises pour reproduire les erreurs 404? |
juillet 10, 2024 à 2:08 pm #15928544 | |
mathiasJ-2 |
Bonjour Nicolas, Désolé pour le délai de réponse. J'ai eu une urgence sur un autre projet ces derniers jours. J'ai bien regarder votre vidéo loom, et je n'ai pas d'explication. De mon côté, j'ai toujours le même problème dès que j'active le plugin Newsletter de Brevo. # BEGIN WordPress devient # BEGIN WordPress A un moment, j'ai pensé que cela pouvait venir d'une configuration serveur. Mais j'ai dupliqué le site sur un autre serveur dédié et j'ai absolument le même problème. J'ai également contacté le support technique de Brevo, mais aucun retour depuis une semaine... Du coup, je suis totalement bloqué et je n'ai aucune piste où chercher hormis ce plugin Brevo. Si besoin, je peux vous donner accès au back-office du site et au serveur en FTP si vous souhaitez regarder. Merci ! |
juillet 11, 2024 à 12:15 pm #15934916 | |
Nicolas V. Supporter
Les langues: Anglais (English ) Français (Français ) Fuseau horaire: America/Lima (GMT-05:00) |
Bonjour, Je vais tester cela sur le site staging ou vous m'avez donné accès et je vais faire remonter votre ticket au deuxième niveau. Je reviens vers vous dès que j'ai leur feedback. |
juillet 12, 2024 à 10:43 am #15941972 | |
Nicolas V. Supporter
Les langues: Anglais (English ) Français (Français ) Fuseau horaire: America/Lima (GMT-05:00) |
Bonjour, L'équipe de deuxième niveau a trouvé le problème. Il semble que le plugin de Brevo appelle la fonction flush_rewrite_rules(true) trop souvent. Voici la documentation que j'ai utilisé pour régler le problème: https://wpml.org/faq/why-is-htaccess-getting-overwritten-with-the-language-folder-on-my-wpml-website/ L'idéal serait que l'auteur de ce plugin résolve le problème, pourriez vous partager le lien dans le ticket que vous avez créé afin de les pointer dans la bonne direction? En attendant voici la solution d'appoint: add_filter('mod_rewrite_rules', 'fix_rewritebase'); function fix_rewritebase($rules){ $home_root = parse_url(home_url()); if ( isset( $home_root['path'] ) ) { $home_root = trailingslashit($home_root['path']); } else { $home_root = '/'; } $wpml_root = parse_url(get_option('home')); if ( isset( $wpml_root['path'] ) ) { $wpml_root = trailingslashit($wpml_root['path']); } else { $wpml_root = '/'; } $rules = str_replace("RewriteBase $home_root", "RewriteBase $wpml_root", $rules); $rules = str_replace("RewriteRule . $home_root", "RewriteRule . $wpml_root", $rules); return $rules; } |
juillet 12, 2024 à 10:53 am #15942016 | |
mathiasJ-2 |
Bonjour Nicolas, Merci pour ce retour positif ! Je transmets de suite analyse à Brevo pour qu'il puisse corriger leur plugin. Mathias |