Passer au contenu Passer à la barre latérale

Ce sujet est résolu. Voici une description du problème et de la solution.

Problem:
The client activated multilingual and automatic translation features on their website but encountered a Litespeed server error when accessing translated pages. The error seemed to be related to the virtual '/en/' directory not existing on the server.
Solution:
We recommended verifying that the object cache was enabled on the Litespeed server and suggested using a mu-snippet plugin to disable cache groups. The client was instructed to create a new .php file in the wp-content/mu-plugins directory and insert the following code:

<?php
/**
 * Plugin Name: WPML Non-Persistent Cache
 * Description: A plugin to prevent persistent caching issues (temporary issue: compdev-220).
 * Author: OnTheGoSystems
 * Author URI: https://wpml.org/errata/problems-with-buddypress-multilingual-and-redis-object-cache/
 * Version: 1.0.0
 * Plugin Slug: compdev-220
 */

wp_cache_add_non_persistent_groups([
		'convert_url',
		'element_translations',
		'get_pages_adjust_ids',
		'get_user_admin_language',
		'translation_priority_relationships',
		'translationmanagement--get_translation_job_id',
		'wpml_cache_terms_per_lang',
		'wpml_endpoints_support',
		'wpml_pre_option_page',
		'wpml_register_string_filter',
		'wpml_register_string_filter--facetwp',
		'wpml_slug_translation_records--post',
		'wpml_slug_translation_records--taxonomy',
		'wpml_st_cache',
		'wpml_term_translation',
		'wpml_tm_blog_translators--has_translators',
		'wpml_wp_cache__group_keys',
]);
?>

Additionally, we clarified that there should not be a separate '/en' directory on the server as WPML handles it virtually, which could be causing 404 errors.

If this solution does not resolve the issue or seems irrelevant due to being outdated or not applicable to your case, we highly recommend checking related known issues at https://wpml.org/known-issues/, verifying the version of the permanent fix, and confirming that you have installed the latest versions of themes and plugins. If further assistance is needed, please open a new support ticket at WPML support forum.

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.

Ce sujet contient 5 réponses, a 0 voix.

Dernière mise à jour par Ilyes Il y a 1 année et 1 mois.

Assisté par: Ilyes.

Auteur Messages
février 9, 2025 à 9:19 am #16683607

paulB-28

Contexte de la question:
Bonjour cher support,

J'ai activé le multi-langue et la traduction auto sur mon site lien caché. J'ai fait une première traduction d'article pour tester et voir ce qu'il manquait à traduire. Aucun problème en Back office. Voici le message d'erreur (shoot écran) lien caché.

lien caché

je n'utilise pas de plugin LScache (ni aucun module de cache)

j'ai contacté mon hébergeur (O2SWITCH), et il m'a dis que LScache etait nativement sur le serveur (un semi dédié), on ne peut pas y toucher

J'ai suivi plusieurs sujets sur le forum d'aide et modifié le fichier htaccess comme de base:

# BEGIN WordPress
# The directives (lines) between "BEGIN WordPress" and "END WordPress" are
# dynamically generated, and should only be modified via WordPress filters.
# Any changes to the directives between these markers will be overwritten.

RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /en/
RewriteRule ^index.php$ - [L]
RewriteRule ^en/wp-login.php /en/wp-login.php [QSA,L]
RewriteRule ^fr/wp-login.php /en/wp-login.php [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /en/index.php [L]

# END WordPress
# END WordPress

#
#RewriteEngine On
#RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
#RewriteBase /
#RewriteRule ^index.php$ - [L]
#RewriteRule ^en/wp-login.php /wp-login.php [QSA,L]
#RewriteRule ^fr/wp-login.php /wp-login.php [QSA,L]
#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond %{REQUEST_FILENAME} !-d
#RewriteRule . /index.php [L]
#

# END WordPress

j'ai controlé la partie troubleshouting maintenance de WPML
j'ai regarder les synchro restant en woocommerce multangue et currency
j'ai controlé les traduction de slug WPML et réenregistré les permaliens

bref le probleme s'aggrave car maintenant ce sont les page et article dans la langues de base (FR) qui sont aussi en 404
lien caché
lien caché

Je tiens à dire que j'utilise AVADA et une série de plugin compatible WPML, que je ne suis pas novice sur la traduction et automation de traduction je fait exactement pareil sur un autre hébergeur OVH (mais en mutualisé) et ca marche parfaitement, là on dirait un conflit LSCACHE et WPML

merci par avance de votre aide, je suis extremement bloqué avec tout mon ecommerce en 404

++

Nicolas

Symptômes:
J'ai commencé à avoir aléatoirement des erreurs 404 en front office. Le message est de LScache, que je n'utilise pas. J'ai contacté mon hébergeur (O2SWITCH) et il est d'origine configuré sur le serveur. Le phénomène s'aggrave car je commence à avoir des pages de base (langue principale) qui sont aussi en 404.

Questions:
Pourquoi est-ce que j'obtiens des erreurs 404 aléatoires sur mon site après avoir activé le multilangue et la traduction auto?
Comment résoudre le conflit avec LScache qui génère des erreurs 404?

février 11, 2025 à 9:35 pm #16693714

Ilyes
Supporter

Les langues: Anglais (English ) Français (Français ) Arabe (العربية )

Fuseau horaire: Pacific/Easter (GMT-06:00)

Bonjour,

Merci d'avoir contacté l'équipe d'assistance WPML,

Nous sommes effectivement au courant de ce conflit car Litespeed est susceptible d'entrer en conflit avec certaines fonctions essentielles de WPML,

Selon sa configuration, il peut avoir intégré le object cache et aussi la capacité de proxy (reverse proxy), qui peuvent tous se comporter de manière irrationnelle.

Vérifiez que le cache d'objet est bien activé sur le serveur litespeed, et peut-être pouvez-vous essayer le plugin mu-snippet pour désactiver les groupes de cache : https://wpml.org/errata/object-cache-pro-various-issues/

- Ce plugin sera plus efficace s'il est installé dans le dossier wp-content/mu-plugins.
- Ouvrez ce dossier et créez un nouveau fichier .php (vous pouvez le nommer « PersistantCache.php » par exemple)
- Collez ce code et enregistrez :

<?php
/**
 * Plugin Name: WPML Non-Persistent Cache
 * Description: A plugin to prevent persistent caching issues (temporary issue: compdev-220).
 * Author: OnTheGoSystems
 * Author URI: https://wpml.org/errata/problems-with-buddypress-multilingual-and-redis-object-cache/
 * Version: 1.0.0
 * Plugin Slug: compdev-220
 */

wp_cache_add_non_persistent_groups( [
		'convert_url',
		'element_translations',
		'get_pages_adjust_ids',
		'get_user_admin_language',
		'translation_priority_relationships',
		'translationmanagement--get_translation_job_id',
		'wpml_cache_terms_per_lang',
		'wpml_endpoints_support',
		'wpml_pre_option_page',
		'wpml_register_string_filter',
		'wpml_register_string_filter--facetwp',
		'wpml_slug_translation_records--post',
		'wpml_slug_translation_records--taxonomy',
		'wpml_st_cache',
		'wpml_term_translation',
		'wpml_tm_blog_translators--has_translators',
		'wpml_wp_cache__group_keys',
] );
?>

Vous pouvez également vous référer à la solution de cet utilisateur : https://wpml.org/forums/topic/object-cache-pro-causing-wpml-issues/page/3/#post-16529233

Cordialement,

février 13, 2025 à 7:59 am #16700323

paulB-28

Bonjour Yles,

merci pour votre retour,

j'ai identifié un mode où cela marche pourtant.

C'est quand on met le pattern d'url en paramètre lien caché - Anglais) >>> ca marche !

(lien caché - Français, lien caché - Anglais) ) >>> ca ne marche pas ! enfin ca marche à la premiere connexion et apres non

Pourtant la seule bonne solution pour le SEO est /lang/ et c'est celle là mon objectif

on dirait que le plantage vient en raison du dossier virtuel /en/ qui n'existe pas sur le serveur.

est ce que votre solution répond bien à ce cas là ?

merci beaucoup pour votre support et votre retour.

bonne journée à vous.

nicolas

février 14, 2025 à 9:16 pm #16708047

Ilyes
Supporter

Les langues: Anglais (English ) Français (Français ) Arabe (العربية )

Fuseau horaire: Pacific/Easter (GMT-06:00)

Bonjour Nicolas,

Vous ne devriez pas avoir un dossier /en séparé sur le serveur, car cela cause des problèmes de 404, WPML s'occupe de ce dossier « virtuellement »

Avez-vous essayé la solution que j'ai suggérée dans ma réponse précédente ?

Si cela n'a pas aidé, vous pouvez également consulter cette solution : https://wpml.org/faq/why-is-htaccess-getting-overwritten-with-the-language-folder-on-my-wpml-website/

février 25, 2025 à 4:35 pm #16747106

paulB-28

Bonjour,

J'ai essayé les deux solution et en effet je n'ai plus de page d'erreur litespeed server sur mon url en anglais et l'url a le bon format

lien caché

je viens de mettre un monitoring sur cette url pour confirmer qu'elle s'affiche sans erreur a chaque fois qu'elle sera appelée. je vous tient au courant sous 48h.

en tout cas bravo et super support Ilyes.

février 26, 2025 à 8:32 pm #16753369

Ilyes
Supporter

Les langues: Anglais (English ) Français (Français ) Arabe (العربية )

Fuseau horaire: Pacific/Easter (GMT-06:00)

Je suis heureux que nous ayons trouvé une solution à votre problème, j'attends votre confirmation 🙂