Aller au contenu

Expression Régulière, Htaccess ?


Sujets conseillés

Bonjour,

Cela fait plusieurs jours que j'essais de créer une règle htaccess mais en vain.

Je voudrais lorsque mon url est sous cette forme :

http://www.monsite.com/chaine_diverse

ou

http://www.monsite.com/chaine_diverse/

Note : "chaine_diverse" pouvant contenir des points des tiret ou des espaces visibles en plus des caractères de "a" à "z" et des chiffre de "0" à "9".

Renvoyer (grâce à une règle htaccess) sur la page :

test.php?chaine=chaine_diverse

Il y a une dernières condition, il faut de cette règle htaccess ne prennent pas en compte les chaines qui se terminent par " .phtml " et " .php " car ce sont des pages qui ne doivent pas être interprétées par cette régle.

Pour info : Voici ce que j'ai fais, bien évidement, ça ne fonctionne pas.

RewriteRule ^([0-9a-z_.-]+)(/*)$ test.php?chaine=$1 [L,QSA]

Merci à vous.

Lien vers le commentaire
Partager sur d’autres sites

Salut Dady,

Normal que cela ne marche pas... il faut d'abord traiter le cas des fichiers se terminant par .php et .phtml (dont ton fichier test.php bien sûr)

Donc, on va écrire

RewriteEngine on
RewriteRule (.*)\.(php|phtml)$ - [L]
RewriteRule ([-_.0-9a-z]+)(/?)$ test.php?chaine=$1 [L,NC,QSA]

J'ai mis le /? pour signifier que le / était facultatif, ainsi que le NC pour prendre les lettres indépendamment de la casse.

Lien vers le commentaire
Partager sur d’autres sites

Le tiret c'est simplement pour dire "ne rien faire" ... parce que c'est exactement ce qu'il faut pour les fichiers en .php et .phtml ;)

Mais il faut une règle pour éviter que ces fichiers passent par la moulinette de la règle suivante.

Dan

PS: merci pour le souhait de "longue vie !" :)

Lien vers le commentaire
Partager sur d’autres sites

  • 5 years later...

Bonjour,

J'avais utilisé la même méthode que celle donnée ici pour transformer une url en variables php, mais je voudrais maintenant aller plus loin.

Je voudrais transformer mon .htaccess pour que de

www.exemple.fr/jean/paul

il fasse

www.exemple.fr/index.php?type=jean&titre=paul

Mon code, pour l'instant, est celui-ci :


RewriteEngine on
RewriteRule (.*)\.(php|phtml)$ - [L]
RewriteRule ([-_.0-9a-z]+)(/?)$ index.php?type=$1 [L,NC,QSA]

Bien entendu, il ne permet de passer qu'une seule chaîne.

Je vous remercie !

Modifié par Noulin
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...