|
Voir le sujet précédent :: Voir le sujet suivant
|
| Auteur |
Message |
| |
|
matsa Nouveau WRInaute
Inscrit le: 21 Jan 2005 Messages: 25 Localisation: poitiers
|
Posté le : Ven Jan 04, 2008 12:44 Sujet du message: Problème avec les répertoires sans le slash final |
|
|
Bonjour,
J'ai un petit problème qui semble plutôt basique mais je ne parviens pas à trouver une solution sur WRI et les autres sites.
J'utilise l'url rewriting pour créer des répertoires virtuels correspondant aux différentes langues d'un site.
Par exemple :
www.monsite.com/fr/ renvoie sur www.monsite.com/pages/index.php?lang=fr
Jusque là tout fonctionne bien. Voici ma règle de réécriture contenu dans mon htaccess :
| Code: |
| RewriteRule ^fr/$ pages/index.php?lang=fr [L] |
Par contre, cela ne fonctionne pas si je tape l'adresse www.monsite.com/fr (sans le slash final).
Tous mes liens internes comportent le slash final mais je pense au cas de l'utilisateur qui taperait l'adresse sans le slash et qui serait redirigé sur une page d'erreur.
Quelle est la solution pour éviter cela ?
Merci d'avance pour vos conseils. |
|
| |
|
 |
moktoipas WRInaute accro

Inscrit le: 29 Juin 2004 Messages: 1827 Localisation: Nantes
|
Posté le : Ven Jan 04, 2008 12:58 Sujet du message: Problème avec les répertoires sans le slash final |
|
|
si tu sais pas trop faire, comme moi, des jolies expression réguliere, tu ajoutes
RewriteRule ^fr$ pages/index.php?lang=fr [L]
sinon, a la place de ton / final, tu trouve l'expression régulière qui permet de dire "/ ou rien" |
|
| |
|
 |
YoyoS WRInaute accro

Inscrit le: 14 Sep 2006 Messages: 1824
|
Posté le : Ven Jan 04, 2008 13:11 Sujet du message: Problème avec les répertoires sans le slash final |
|
|
Fais plutôt une redirection sur celui avec "/", cela t'évitera la duplication de contenu par la même occasion
RewriteRule ^fr$ /fr/ [L,R=301]
et en dessous tu mets ta règle:
RewriteRule ^fr/$ pages/index.php?lang=fr [L] |
|
| |
|
 |
matsa Nouveau WRInaute
Inscrit le: 21 Jan 2005 Messages: 25 Localisation: poitiers
|
Posté le : Ven Jan 04, 2008 13:46 Sujet du message: Problème avec les répertoires sans le slash final |
|
|
Merci Yoyos pour ta solution !
J'ai tout d'abord testé sur l'hébergement de mon client (Online.net pour ne pas nommer l'hébergeur) et ça ne marchait pas ! Je savais déjà que l'urlrewriting était un casse tête chez cet hébergeur (obligation de ne pas mettre de '^' avant les règles de réécriture...) mais j'arrivais à peut près à me débrouiller en bidouillant ! Mais là je crois avoir atteint les limites de l'url rewriting chez cet hébergeur.
Pour comparer j'ai fait un petit test rapide sur pour hébergement chez ovh et là ton exemple fonctionne nickel, avec ou sans slash final !!!
Résultat, je vais essayer de convaincre mon client de changer d'hébergeur ou bien s'il ne veut vraiment pas je me résoudrait à abandonner l'url rewriting (snif snif). |
|
| |
|
 |
dorian53 WRInaute accro

Inscrit le: 10 Avr 2005 Messages: 1415
|
Posté le : Ven Jan 04, 2008 16:07 Sujet du message: Problème avec les répertoires sans le slash final |
|
|
J'ai cru remarqué que le [L] n'était pas nécessaire lorsqu'on indiquait [R=301] externe avec http:// (que la redirection "sortait" immédiatement sans [L]).
Depuis je ne l'ajoute plus mais je ne suis pas sûr...
Pouvez-vous me confirmer qu'il est optionnel ?
Bien sûr dans cet exemple, il ne serait pas utile de sortir de la séquence de ré-écriture pour continuer jusqu'à la règle suivante.
| YoyoS a écrit: |
Fais plutôt une redirection sur celui avec "/", cela t'évitera la duplication de contenu par la même occasion
RewriteRule ^fr$ /fr/ [L,R=301]
et en dessous tu mets ta règle:
RewriteRule ^fr/$ pages/index.php?lang=fr [L] |
|
|
| |
|
 |
webmasterlamogere WRInaute accro

Inscrit le: 17 Déc 2006 Messages: 1441 Localisation: urlrewriting.fr
|
Posté le : Ven Jan 04, 2008 17:08 Sujet du message: Problème avec les répertoires sans le slash final |
|
|
| sinon pour indiquer que le / est facultatif il faut mettre un ? après |
|
| |
|
 |
dorian53 WRInaute accro

Inscrit le: 10 Avr 2005 Messages: 1415
|
Posté le : Ven Jan 04, 2008 17:35 Sujet du message: Problème avec les répertoires sans le slash final |
|
|
| webmasterlamogere a écrit: |
| sinon pour indiquer que le / est facultatif il faut mettre un ? après |
| YoyoS a écrit: |
| Fais plutôt une redirection sur celui avec "/", cela t'évitera la duplication de contenu par la même occasion |
|
|
| |
|
 |
KOogar WRInaute accro

Inscrit le: 16 Nov 2004 Messages: 2818 Localisation: Bangalore +3h30
|
Posté le : Ven Jan 04, 2008 21:36 Sujet du message: Problème avec les répertoires sans le slash final |
|
|
| dorian53 a écrit: |
J'ai cru remarqué que le [L] n'était pas nécessaire lorsqu'on indiquait [R=301] externe avec http:// (que la redirection "sortait" immédiatement sans [L]).
Depuis je ne l'ajoute plus mais je ne suis pas sûr...
Pouvez-vous me confirmer qu'il est optionnel ?
|
yes yes.. dans ce cas précis le flag [L] n'est pas néccessaire |
|
| |
|
 |
| |
|
|