Expression Régulière, Htaccess ? (Pour connaisseurs)

porciner Messages postés 56 Date d'inscription mardi 22 juin 2004 Statut Membre Dernière intervention 18 avril 2008 - 3 août 2005 à 10:04
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 - 3 août 2005 à 12:54
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.

5 réponses

mcjoedassin Messages postés 196 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 2 septembre 2005
3 août 2005 à 10:26
si tu veux faire une redirection :



RewriteEngine on

RewriteCond %{REQUEST_URI} !\.php$

RewriteCond %{REQUEST_URI} !\.phtml$

RewriteRule ^([0-9a-z_\.\-]+)$ /test.php?chaine=$1 [R]

ou quelquechose dans le genre ...
0
mcjoedassin Messages postés 196 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 2 septembre 2005
3 août 2005 à 10:33
une dernière chose :

la documentation complète est sur http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html



pour ce genre de questions, irc.freenode.net sur #apache

les gens y sont très sympas et s'y connaissent mieux que moi ...
0
porciner Messages postés 56 Date d'inscription mardi 22 juin 2004 Statut Membre Dernière intervention 18 avril 2008
3 août 2005 à 10:51
Merci beaucoup mc pour ta réponse rapide.

J'ai malgré tout deux petits problèmes :

- Si la chaine se termine par un "/" ça ne marche pas Ex :
http://www.monsite.com/chaine_diverse/
Il faut de plus que lors de la redirection ce "/" ne soit pas pris en compte Ex :
test.php?chaine=chaine_diverse et pas test.php?chaine=chaine_diverse/

- L'url d'origine n'est pas conservée dans la barre d'adresse, est-ce possible de la conserver lors de la redirection ?

Encore merci pour ton aide.
0
mcjoedassin Messages postés 196 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 2 septembre 2005
3 août 2005 à 10:57
essaye avec ^([0-9a-z_\.\-]+)\/*$ mais ...



Tu as pensé au getenv ("REQUEST_URI"); qui te permet d'obtenir l'URL demandée, par exemple tu combines ça avec un



ErrorDocument 404
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
3 août 2005 à 12:54
Salut,



essaie ça :



RewriteEngine on

RewriteRule ^chaine_diverse/?$ /test.php?chaine=$1




<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
0