Je suis en train de créer un site multilingue et j'aimerais avoir votre aide pour prendre la meilleure décision en matière de référencement. Après avoir lu this .
Je voudrais changer mes URL de ce formulaire www.mywebsite.com/page?lang=es
en www.mywebsite.com/es/page?lang=es
. Je dois garder le ?lang=es
pour autre chose.
Mon fichier . Htaccess contient déjà ces éléments (supprimer l’extension .php
de page.php
).
RewriteCond %{THE_REQUEST} ^GET\s.+\.php [NC]
RewriteRule ^(.+)\.php$ /$1 [NE,R=301,L,NC]
RewriteCond %{REQUEST_URI} !\.php$ [NC]
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule . %{REQUEST_URI}.php [PT]
Quelque chose comme ça va marcher.
RewriteCond %{QUERY_STRING} ^(lang=es)$
RewriteRule ^$ /es/page.php?lang=es
RewriteRule ^index.php$ /es/page.php?lang=es
Comme vous ne pouvez pas faire correspondre une chaîne de requête dans une règle de réécriture, nous utilisons %{QUERY_STRING}
. Si vous utilisez un chemin relatif, comme dans l'exemple, vous obtiendrez une redirection silencieuse (par exemple, l'URL ne changera pas, mais Apache servira la nouvelle page). Si vous souhaitez une redirection 301, vous devez utiliser l'URL complète du nom de domaine complet, y compris le protocole, tel que http://www.example.com/es/page.php?lang=es
.
Ce n'est pas vraiment une réponse à la question, mais vous pouvez garder à l'esprit que les directives de Google recommandent d'éviter d'utiliser des URL avec des chaînes de paramètres dans, pour les langues ou autres.
Donc, si vous faites l'effort de ranger vos URL, vous pourriez aussi bien suivre les meilleures pratiques.