J'ai cette URL pour les systèmes multi-langues utilisant php:
http://mydomain/ <-- default language english (en)
http://mydomain/index.php?lang=de
http://mydomain/index.php?lang=fr
http://mydomain/index.php?lang=tr
Maintenant, pour une autre page, j'ai cette URL:
http://mydomain/article.php?id=xx <-- show article details
http://mydomain/article.php?list=all <-- show article archive
http://mydomain/gallery.php?id=xx
http://mydomain/faq.php?id=xx
http://mydomain/faq.php?list=all
http://mydomain/contact.php
Maintenant, j'ai besoin de créer une URL conviviale pour le référencement utilisant php et htaccess comme ceci:
pour l'index:
http://mydomain/ <-- for default
http://mydomain/de/
http://mydomain/fr/
pour l'article ie: (domain/lang/id/title.html)
http://mydomain/de/articles/22/test.html
pour la page:
http://mydomain/de/contact.html
pour archive:
http://mydomain/de/articles/listall.html
dans htaccess j'écris ce code pour l'article:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^articles/([0-9]+)/([A-Za-z0-9-]+)/?.html$ articles.php?id=$1
mais cela a fonctionné pour une langue pas plusieurs langues. Comment puis-je créer une URL conviviale pour un système multilingue?!
Essayez quelque chose comme RewriteRule ^([en|es|ru|de]{2})/(.*)$ $2?lang=$1&%{QUERY_STRING} [L,QSA]
Où vous voudrez remplacer [en | es | ru | de] par les codes de langue valides à deux lettres que votre site utilise. Cela prendra ensuite ce qui se trouve après le code de langue dans l'URL, et l'utilisera comme URL "principale", puis ajoutera? Lang = es à l'URL "réelle", bien que l'utilisateur ne le verra pas, il le fera. arriver en arrière-plan.