Sauter la navigation

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

Problème:
Le client avait des erreurs 500 (erreur serveur) sur son site et son hébergeur lui a indiqué que cela était lié aux directives de WPML dans le htaccess.

Solution:
Effectivement, les directives WPML présentes dans le htaccess ne correspondaient pas à la configuration du site dans "WPML > Langues > Format d'URL de langue". J'ignore la cause (peut être un changement de configuration) mais une solution simple était:
- Éliminer ou renommer le fichier htaccess
- Puis d'aller dans "Réglages > Permaliens" pour les sauvegarder
- WordPress va créer un nouveau fichier htaccess avec les bonnes directives

Documentation:
https://wpml.org/fr/forums/topic/probleme-de-permalien-et-error-500/#post-13674599

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é : 

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

Dernière mise à jour par oscarR-24 Il y a 1 année et 8 mois.

Assisté par: Nicolas V..

Auteur Articles
mai 18, 2023 à 3:33 pm #13673299

oscarR-24

Bonjour,

Je rencontrais souvent des error500 sur mon site que je n'arrivais à régler qu'en clearant mes permaliens. J'ai finis par demander au support de mon hébergeur d'où venait le problème. Ils ont identité un pb venant de WPML.

Je vous joint la transcription

Vladimir Iv : This is your current .htaccess file

 # 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. <IfModule mod_rewrite.c> 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] </IfModule> # END WordPress

Vladimir Iv.: Do you see the en/ and fr/ parts to it ? They are causing this

Vladimir Iv.: If we remove them now the site should start working again

Vladimir Iv.: Or what you can do instead is to replace it with default .htaccess

Vladimir Iv.: You can find it here -> https://wordpress.org/documentation/article/htaccess/

Qu'en pensez-vous ?

Oscar

mai 18, 2023 à 6:41 pm #13674599

Nicolas V.
Supporter

Les langues: Anglais (English ) Français (Français )

Fuseau horaire: America/Lima (GMT-05:00)

Bonjour,

Bienvenue sur le support de WPML.

Effectivement ce sont des règles ajoutées par WPML. Cependant elles ne correspondent pas à la configuration présente dans votre fichier de débogage. C'est sans doute le problème ici!

Les règles du htaccess indiquent que l'Anglais est la langue par défaut et qu'elle est présente dans un repertoire /en (lien caché)
Et les règles suivantes redirigent donc la page de login aussi bien FR que EN à la page login dans ce répertoire Anglais /en/login.php

Or, la configuration de votre fichier de débogage indique que la langue par défaut est le Français et elle n'est pas dans un répertoire (donc lien caché).

Je pense que vous pouvez renommez ce fichier htaccess en OLD_htaccess. Puis retournez dans "Réglages > Permaliens". Si WordPress ne trouve pas le fichier htacces, il va le créer à nouveau.

Dites moi si cette astuce fonctionne.
Nico

mai 19, 2023 à 3:15 pm #13680391

oscarR-24

Désolé, mais je serais incapable de savoir si cela a fonctionné.

Voici le contenu du nouveau htaccess :

# 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.
<IfModule mod_rewrite.c>
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]
</IfModule>

# END WordPress

Qu'en pensez-vous ?

mai 19, 2023 à 3:59 pm #13680621

Nicolas V.
Supporter

Les langues: Anglais (English ) Français (Français )

Fuseau horaire: America/Lima (GMT-05:00)

Bonjour,

Oui cela semble correct. Est-ce que vous avez toujours les erreurs 500 après cela?

Nico

mai 19, 2023 à 4:01 pm #13680625

oscarR-24

Il semblerait que non.
J'ouvrirai un nouveau ticket avec lien vers cet échange si je vois que le problème persiste.
Encore une fois, merci pour votre aide rapide Nicolas ❤️

Oscar