Pb: Reécriture d'url et .htaccess

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Pb: Reécriture d'url et .htaccess

par Anémone » 01 févr. 2009, 16:01

Oui, blof, merci pour ta réponse.
Cependant mon problème reste entier, et une recherche avec URL rewriting ne me donne pas la réponse recherchée.
Mais ma question maintenant déborde de l'intitulé de ce thread, je la formule donc dans un nouveau message.
Merci,
Thierry

par blof » 29 janv. 2009, 17:01

Salut,

Code : Tout sélectionner

RewriteRule ^([a-z])\.html$ /index.php?champ=$1&envoi=OK [L]
[a-z] représente un caractère compris entre a et z.
tu ne vas donc réécrire que les URL : a.html, b.html, ... ,z.html

pour accepter plusieurs caractères il faut l'indiquer : [a-z]+
( "+" est un quantificateur qui signifie "un ou plusieurs" )

Fais une recherche avec "URL rewriting" et "expressions régulières POSIX".

par Anémone » 28 janv. 2009, 20:15

Bonjour,

Merci pour ces réponses; de mon coté, j'ai un peu avancé, je ne plante plus Apache, mais toujours pas de redirection. Voici le nouveau code:

Code : Tout sélectionner

RewriteRule ^([a-z])\.html$ /index.php?champ=$1&envoi=OK [L]
J'ai fait pour tester:

Code : Tout sélectionner

RewriteRule ^index\.html$ /index.php [L]
et ça marche.
D'où ma perplexité...
Merci,

Thierry

par Ryle » 28 janv. 2009, 19:52

L'erreur 500 vient d'un problème au niveau d'apache. Il rencontre donc un problème à la lecture de ton .htaccess, c'est donc plus un problème de syntaxe qu'il faut chercher...

En l'occurence, je ne suis pas certains qu'apache connaisse la classe [[:alpha:]] ... à vérifier, mais tu doit normalement pouvoir utiliser [a-zA-Z] sans problème :) (y a pas d'accent dans les urls)

A noter également que ".html" dans la regexp ne correspond pas à l'extension ".html" mais à "n'importe quel caractère suivi des lettres html". Pour signifier qu'il s'agit bien du caractère point, il faut l'échaper à l'aide d'un antislash : "\.html" ;)

Ps : quant à ta transformation, si ta règle gère les .html et que tu saisis un .htm, elle ne sera pas appliquée :)

par thehawk » 28 janv. 2009, 19:45

Bonjour

Essaye de faire sans de "$" pour $var.htm.

Bonne soirée Hawk

Pb: Reécriture d'url et .htaccess

par Anémone » 28 janv. 2009, 17:50

Bonjour,

Après recherches et tatonnements, j'ai adopté ce code

Code : Tout sélectionner

Options +Follow Symlinks RewriteEngine on RewriteBase /monrep/ RewriteRule ^([[:alpha:]]).html$ index.php?champ=$1&envoi=OK
dans l'espoir de transformer une url du type

Code : Tout sélectionner

/index.php?champ=$var&envoi=OK
en ceci

Code : Tout sélectionner

/$var.htm
en lieu de quoi le serveur me retourne:
"Internal Server Error..."
Et je ne trouve rien dans les fichiers log qui puisse m'éclairer.
Merci pour vos lumières,
cordialement

Thierry