J'ai un site internet en anglais et en espagnol, chaque langue a son propre dossier, par exemple :
news.com/en/ for English news.com/es/ for Spanish
La liste des dernières actualités est affichée sur :
news.com/en/latest-news.php for English news.com/es/ultimas-noticias.php for Spanish
Lorsqu'un utilisateur clique sur un article pour lire l'article en entier, il est lié pour lire l'article en entier à partir d'ici (en utilisant un slug stocké dans MySQL) comme ceci (par exemple) :
news.com/en/general/news/europe/2022/10/22/this-is-a-nice-title
Tous les articles utilisent la page suivante pour les limaces :
news.com/en/read-article.php for English news.com/es/leer-noticia.php for Spanish
Sur ces pages, le script interroge MySQL pour rechercher des slugs et affiche l'article complet. Le problème est que, pour une raison que je ne comprends pas, je n’obtiens aucun résultat.
Si je déplace le fichier vers le répertoire racine :
news.com/read-article.php for English news.com/leer-noticia.php for Spanish
Ensuite, cela a bien fonctionné, mais en ajoutant ces fichiers dans des sous-dossiers, je n'ai obtenu aucun résultat.
Il est important de noter que les slugs sont enregistrés dans MySQL comme ceci :
general/news/europe/2022/10/22/this-is-a-nice-title
Parce qu'ils sont plus beaux que les tirets et que la date est la date de publication, elle changera à chaque publication.
Voici le code .htaccess que j'ai créé pour ces sous-dossiers :
Mise à jour : le problème concerne uniquement htaccess et même si j'ai répondu à ma propre question, il n'est toujours pas complètement résolu
RewriteEngine On RewriteRule ^(en)/([a-zA-Z0-9-]+)$ /read-article.php?id= [L] RewriteRule ^(es)/([a-zA-Z0-9-]+)$ /leer-noticia.php?id= [L]
Une idée d'où se situe le problème ?
Pour ceux qui cherchent de l'aide car ils ont le même problème et je suis sûr qu'ils sont nombreux :
J'ai pu le réparer d'une manière avec beaucoup de chance, mais certainement pas de manière professionnelle, c'est peut-être la mauvaise façon, mais ça marche. Il existe de nombreuses questions similaires sur ce site Web sans réponse, il semble donc que la personne moyenne ne sache pas grand-chose sur htaccess.
La solution que j'ai trouvée est :
Vous pouvez donc avoir un site Web en plusieurs langues et chaque langue est dans un sous-dossier, mais même si vous exploitez un site Web monolingue et utilisez des sous-dossiers, vous aurez certainement besoin de cette aide, exécutez simplement ce .htaccess, cela fonctionnera (modifier avec votre nom de fichier évidemment)
Maintenant, nous devons absolument en savoir plus sur [L] dans le code, il y en a beaucoup d'autres comme celui-ci :
Je ne comprends pas les commandes suivantes, si vous en avez besoin, mais vous pouvez certainement les trouver si vous demandez de l'aide, ou peut-être que certaines personnes ici pourront partager leurs connaissances avec nous :
Personne d'autre n'a répondu à cette question, c'est la même chose que la plupart des questions sur .htaccess et les URL conviviales, mais il y a au moins quelques trucs non professionnels ici, mais de toute façon je partage quelques connaissances noob parce que c'est l'idée principale de cette communauté, pas tout le monde est un professionnel, mais nous pouvons tous partager nos connaissances. S'il y a une meilleure réponse, je la marquerai certainement comme correcte