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 404 sur le frontend de son site après avoir changé le format d'url de ?lang=en (paramètre) à /en (répertoire).

Solution:
Le préfix /index.php était ajouté dasn les URLS des pages. De plus, le problème n'a pas pu être reproduit sur nos serveurs nginx. Ce qui indique un problème de configuration serveurs.

When the rewrite apache module isn't enabled, WordPress puts that index.php in the permalinks. Once you enable mod-rewrite, you can remove the index.php from the permalink structure.

Documentation:
https://wpml.org/fr/forums/topic/format-durl-de-langue-renvoie-une-erreur-404/#post-13519291

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 7 réponses, a 2 voix.

Dernière mise à jour par davidT-76 Il y a 1 année et 10 mois.

Assisté par: Nicolas V..

Auteur Articles
Avril 20, 2023 à 3:48 pm #13513001

davidT-76

Bonjour, nous souhaitons changer le format d'url de langue de ?lang=en vers /en
Nous avons suivi la documentation, mis à jour les percalines et vider le cache mais malheureusement nous obtenons une erreur 404 lorsque nous essayons d'accéder à une page traduite

Quel est le lien vers votre site ?
lien caché
lien caché

Merci pour votre aide.

Capture d’écran 2023-04-20 à 17.40.09.png
Capture d’écran 2023-04-20 à 17.39.06.png
Avril 20, 2023 à 9:23 pm #13514333

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.

Il semble que le problème soit l'ajout de /index.php dans l'url. Il y a-t-il une raison à cela? j'ai essayé de visiter cette page mais elle redirige simplement vers la homepage.

Normalement les règles WP dans votre htaccess se charge de ne pas faire apparaitre index.php:

# BEGIN WordPress

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]

# END WordPress

Si vous souhaitez garder index.php, il vous faudra peut être une règle de rewrite personnalisée pour accomplir cela.

Dans l'attente de votre réponse,
Nico

Avril 20, 2023 à 10:34 pm #13514507

Nicolas V.
Supporter

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

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

Re,

Nous avons fait un test rapide et cela fonctionne de notre côté: lien caché

Peut être qu'il vous manque les règles WP dans votre htaccess?
Ou alors que votre serveur ne prend pas en charge es rewrite rules?
Pourriez vous partager ce fichier peut être pour écarter la première hypothèse?

J'active un champ privé qui sert normalement à partager un package du site complet mais utilisez le seulement pour ce fichier svp.

Avril 21, 2023 à 7:25 am #13515435

davidT-76

Bonjour, merci pour votre réponse. J'ai retiré le index.php qui n'est pas utile pour notre projet maintenant les pages excepté la page d'accueil sont en erreur 404 dans les deux langues. Le fichier .htaccess est identique au votre, ci-joint une capture.

Merci

Capture d’écran 2023-04-21 à 09.15.33.png
Avril 21, 2023 à 5:04 pm #13519291

Nicolas V.
Supporter

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

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

Bonjour,

D'accord donc nous pouvons écarter le problème de htaccess.

C'est peut être le serveur dans ce cas, est-ce qu'il prend en charge les rewrite rules écrites dans htaccess? Pouvez vous contacter votre hébergeur pour confirmer cette info?

Nos sites tests sont sur nginx et je n'ai pas réussi à reproduire le problème mais je vois que vous êtes sur Apache. De plus j'avais demandé à notre équipe technique (car les configurations de serveurs vont au-dela de notre support) et le feedback que j'ai eu semble indiquer la même chose:

When the rewrite apache module isn't enabled, wordpress puts that index.php in the permalinks. Once you enable mod-rewrite, you can remove the index.php from the permalink structure.

Nico

Avril 24, 2023 à 7:34 am #13524741

davidT-76

Bonjour, merci pour votre réponse. La réécriture d'url est bien activée sur le serveur mais je demanderais à notre responsable technique de revérifier. Si jamais le serveur n'étais pas en cause, avez-vous une idée de ce qui pourrait être à l'origine de notre problème ?

Merci pour votre aide.

Avril 24, 2023 à 9:59 pm #13530069

Nicolas V.
Supporter

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

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

Bonjour,

Pour être honnête, je n'ai pas d'autre idée car un collègue de l'équipe système a réussi à reproduire le problème seulement en local sur Apache et en désactivant le module de rewrite.

J'espère que votre responsable trouvera la solution sinon il faudra sans doute faire remonter votre ticket à l'équipe technique.

Tenez moi informé,
Nico

Avril 27, 2023 à 7:59 am #13547103

davidT-76

Il s'agissait bien d'un problème de configuration du serveur.
Merci pour votre aide.