URL rewriting récalcitrante - Divers - Programmation
Marsh Posté le 18-03-2008 à 13:54:46
Oublie pas de mettre un [QSA] dans la dernière RewriteRule pour que les paramètres soit ajoutés
Marsh Posté le 18-03-2008 à 13:55:59
Et surtout pas de R=301, parce que sinon l'url avec le paramètre sera affiché dans le navigateur. C'est seulement en interne que tu dois cibler index.php?id=machin, pas côté navigateur
Marsh Posté le 18-03-2008 à 14:47:47
J'ai modifié comme cela :
Code :
|
Cela réponds à tout les critères, sauf un...
La ligne RewriteRule ^(.*)index.php?id=(.*)$ http://www.adfi.info/$1.html [R=301] ne semble pas correcte ou pas interprètée...
Mon idée est la suivante :
J'indique que http://hote/truc.html = http://hote/index.php?id=truc (cela marche actuellement)
Si l'utilisateur tape http://hote/index.php?id=truc il faut réécrire cela en http://hote/truc.html (cela ne marche pas)
Une fois ces deux critères remplis, je teste l'hôte afin de le corriger au besoin de la manière suivante :
Si l'utilisateur écrit http://bidule.com , je réécris cela afin d'avoir http://www.bidule.com...Tout en conservant les paramètres qui suivent et qui, après les traitement précédent, doivent être de forme truc.html (ça semble marcher aussi)
Si l'utilisateur écrit http://bidule.dyndns.org , je réécris cela afin d'avoir http://www.bidule.com...Tout en conservant les paramètres qui suivent et qui, après les traitement précédent, doivent être de forme truc.html (ça semble marcher aussi)
Du coup, je n'ai pas compris pourquoi mettre QSA ni pourquoi supprimer R=301...Car je souhaite indiquer à google (entre autre) que le lien http://adfi.dyndns.org n'existe plus.
Merci
Marsh Posté le 18-03-2008 à 15:03:04
bagu a écrit : La ligne RewriteRule ^(.*)index.php?id=(.*)$ http://www.adfi.info/$1.html [R=301] ne semble pas correcte ou pas interprètée... |
Il est impossible de matcher la query string (donc ce qui est après le ?). Cette ligne ne peut pas fonctionner.
bagu a écrit : Si l'utilisateur tape http://hote/index.php?id=truc il faut réécrire cela en http://hote/truc.html (cela ne marche pas) |
Ah ben voilà le problème : ce que tu veux faire est impossible, mod_rewrite ne sert pas à ça (ça risque en plus de devenir trop complexe)
Marsh Posté le 18-03-2008 à 16:14:27
Merci à toi pour tes réponses...
Je vais donc faire sans...En espérant qu'une version hypothétique du mod rewrite puisse le faire un jour futur.
Même si je trouve quand même vachement frustrant le fait que quand je tape :
http://adfi.dyndns.org/prestations.html
cela se transforme en :
http://www.adfi.info/index.php?id=prestations
Et non en :
http://www.adfi.info/prestations.html
Ha ben en fait, le problème que je vient d'évoquer est résolu par :
Code :
|
Marsh Posté le 18-03-2008 à 16:41:49
Ouais le problème c'est que tu faisais une redirection après le RewriteRule, alors qu'il ne faut pas
Marsh Posté le 18-03-2008 à 12:07:19
Bonjour,
Je suis en train d'essayer de mettre en place de l'url rewriting pour un site que je maintient et qui a changé récemment d'url.
Les principes de fonctionnements sont les suivants :
adfi.dyndns.org doit être renvoyé vers www.adfi.info
adfi.info doit être renvoyé vers www.adfi.info
accueil.html doit être compris pas le serveur comme étant index.php?id=accueil (accueil est un exemple)
et index.php?id=accueil doit être réécrit en accueil.html (accueil est un exemple)
Hors, pour le moment, tout marche sauf un cas de figure :
Voici le contenu de mon .htaccess :
Y aurait-il une âme charitable pour m'aider, car j'ai du mal à avancer (c'est obscure l'url rewriting)
Merci
Message édité par bagu le 18-03-2008 à 12:08:28