Aller au contenu

URL rewriting simple


yuston

Sujets conseillés

Bonjour,

je souhaite appliquer une url rewriting de cette manière:

index.php?qry=var

en

recherche-var.html

"var" peut valoir n'importe quel caractère, donc, alphanumérique mais aussi les caractères spéciaux, tels que les lettres accentuées ou des espaces ou des tirets ou encore des underscores....

Pour faire simple, j'ai voulu tester juste avec des lettres, j'ai donc ceci:

RewriteRule ^recherche-([a-z]+).html$  index.php?qry=$1  [NC, L]

A ma grande surprise, ca ne marche déjà pas comme il faut,....

Dans l'url, je mets:

www.example.com/recherche-var.html

ca me donne une erreur 404, et quand je mets:

www.example.com/index-var.html

c'est correct, voilà....

Donc si vous avez une solution pour eviter ce premier problème, je suis preneur, et mieux encore, si vous avez ce que je recherche, je suis également preneur... lol

Merci d'avance!

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

Pour que index-var.html te donne un résultat et non une page 404, c'est que tu dois avoir une règle sur cette URL.

La règle que tu cites n'a aucune action sur cette URL, donc il doit s'agir d'une autre.

De plus, pour tester il faut éviter de mettre des ^ en début de chaîne, parce qu'il est fort possible qu'un / soit transmis avant le nom de fichier.

Ce n'est que quand cela marche "en général" qu'on peut resserrer les règles, pas avant.

Essaie avec:

RewriteRule recherche-(.+)\.html  index.php?qry=$1  [NC, L]

Dan

Lien vers le commentaire
Partager sur d’autres sites

Bonsoir,

en essayant votre code, il me donne une erreur 500.

Je sais que vous vous dites dans ce cas que le mod_rewrite d'Apache ne doit pas être activé, or, je suis sûr et certain qu'il l'est...

Donc si vous avez d'autres suggestions, je veux bien volontiers les tester :)

Bonne soirée!

Lien vers le commentaire
Partager sur d’autres sites

Avec un "RewriteEngine On" avant la règle bien sûr :!:

Parce que rien dans cette règle ne peut générer d'erreur 500 ... sauf si mod_rewrite n'est pas actif ou qu'on oublie cette ligne :whistling:

Lien vers le commentaire
Partager sur d’autres sites

Voila donc mon code au gran complet:

Options +FollowSymlinks
RewriteEngine on

RewriteCond %{HTTP_HOST} ^monsite.com$
RewriteRule ^(.*)   http://www.monsite.com/$1  [QSA,L,R=301]

RewriteRule recherche-(.+)\.html  index.php?qry=$1  [NC, L]

Donc je ne vois pas trop pourquoi....

Merci de la réponse rapide ;)

Lien vers le commentaire
Partager sur d’autres sites

As-tu essayé en enlevant l' "Options +FollowSymlinks" ?

Je ne connais pas ton hébergeur et ne sais pas si c'est supporté.

Lien vers le commentaire
Partager sur d’autres sites

Oui j'ai déjà testé avec et sans, le résultat reste inchangé: Erreur 500

En principe mon hébergeur le supporte, d'ailleurs, comme j'ai dit plus haut, j'ai réussi à le faire fonctionner partiellement.

De plus, obliger le www. marche également parfaitement.

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...