Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Mod rewrite, regex et autres joyeuseries [ Divers / Divers ] (zmc)

vendredi 25 avril 2008 à 23:25:04 | Mod rewrite, regex et autres joyeuseries

zmc

Bonsoir,

J'utilise actuellement de la redirection d'URL via .htaccess, aucun problemes jusqu'ici, par exemple "site.com/avis=xxxx" est redirigé vers "site.com/controllers/evaluation.php?partenaire=xxxx". Je precise que tous ces liens sont en "dur" (genre <a href="avis=xxxx'>) en revanche la ou ca bloque mechamment c'est pour faire la meme chose a partir de la value d'un select, je valide mon formulaire et l'url generée est sytematiquement du type "cible.php?value=xxxx".

Deja serait il possible, et ce sans passer par des hacks javascript, de modifier la cible du formulaire (par exemple recherche=$get). J'y crois moyen....

Au pire je pourrais tres bien rediriger "recherche.php?get=xxxx" mais la encore gros probleme, de regex cette fois ci ! Pas moyen d'integrer mon "?" dans le masque de recherche, voici en gros ma ligne htaccess (les regex j'aime pas ca, mais j'imagine que ca se voit...) :

RewriteRule ^recherche.php?keywords=([a-z])$ controllers/search.php?keywords=$1

ici le ? est interpretté comme un + ou un *, j'ai egalement essayé avec \?, ., [-?], [?] etc... pas moyen... en fait j'aimerais simplement rediriger "recherche.php?get=xxxx" vers "controllers/search.php?get=xxxx" mais je n'y arrive vraiment pas, un expert (ou a defaut quelqu'un ayant pigé les regex) pourrait il me filer un petit coup de main ?

Merci d'avance

samedi 26 avril 2008 à 00:27:11 | Re : Mod rewrite, regex et autres joyeuseries

neigedhiver

Réponse acceptée !
Salut,

Les regex, c'est le pied intégral.

Concernant la redirection avec le mod rewrite, personnellement, je n'ai pas pu le faire ailleurs que dans le fichier httpd.conf ou dans le vhost du site. Pas dans le .htaccess
Je pense donc que ta regex est correcte, si tu y mets un \ devant ton ? (pour l'échapper, comme tu l'as compris).
Chez moi, c'est comme ça que ça se passe. Sur une Ubuntu 7.10 et sur une Gentoo 2006, toutes les deux avec Apache 2.2
RewriteRule ^/recherche.php(.*) controllers/search.php$1 [NC,R,L]
Testé et approuvé : dans le fichier de configuration du vhost, ça marche. Dans le httpd.conf, aussi, forcément. Dans le .htaccess par contre, ça fait rien du tout...
Je ne sais pas si c'est normal ou pas... Je suppose que oui... Je n'ai encore rien trouvé dans la doc d'Apache qui parle de ça : a priori, aucune limitation... sauf que dans les faits...
en revanche la ou ca bloque mechamment c'est pour faire la meme chose a partir de la value d'un select, je valide mon formulaire et l'url generée est sytematiquement du type "cible.php?value=xxxx".
Et pourquoi pas :
<form method="GET" action="">
</form>
D'après la spécification XHTML 1.1, l'attribut action de la balise form ( http://www.w3.org/TR/xhtml-modularization/abstract_modules.html#s_extformsmodule ) doit prendre une URI valide. D'après la RFC2396 une URI peut être vide :
4.2. Same-document References

A URI reference that does not contain a URI is a reference to the
current document.
Donc si tu ne mets rien, c'est a priori valide (bon faut passer au validateur pour s'en assurer, ce que je n'ai pas fait). Alors faut voir où se trouve ton formulaire... Ca pourrait bien te donner une url de la forme keyword=xxxxx avec xxxxx le contenu du champ (input) nommé keyword.
Faut tester pour voir... Là, je dis ça sans aucune certitude... Je m'interroge, et il est trop tard pour que je fasse des tests. Mais t'as une piste à creuser.


Neige

N'hésitez pas à lire la doc de PHP avant de poser des questions triviales...

samedi 26 avril 2008 à 00:50:28 | Re : Mod rewrite, regex et autres joyeuseries

Evangun

Réponse acceptée !
Hello,

pour le action="" je crois que ce serait trop beau ^^ essaie peut-être action="/" mais je ne sais as si ça correspond exactement à ce que tu veux.

"RewriteRule ^/recherche.php(.*) controllers/search.php$1 [NC,R,L] Testé et approuvé : dans le fichier de configuration du vhost, ça marche. Dans le httpd.conf, aussi, forcément. Dans le .htaccess par contre, ça fait rien du tout... Je ne sais pas si c'est normal ou pas..."

Pour l'url rewriting par htaccess, je crois que c'est le chemin de redirection qui est plus capricieux :
RewriteRule ^/recherche.php(.*) /controllers/search.php$1 [NC,R,L]

à+

samedi 26 avril 2008 à 03:03:22 | Re : Mod rewrite, regex et autres joyeuseries

zmc

Salut Neige, Salut Evangun, merci d'avoir repondu (si rapidement)

Alors voila, je viens de "regler" mon probleme tout a fait par hasard, seulement c'est limite plus flippant que quand ca marchais pas...

J'avais cru comprendre qu'en utilisant un masque de type ^ab$ la chaîne devait impérativement commencer par a, finir par b et basta. J'etais également parti du principe que dans mon .htaccess je devais recuperer la variable passé en paramètre via ([a-z]) puis la rediriger avec xxxx.php?var=$1. En fait j'avais tout faux, voici "la" ligne:

RewriteRule ^recherche.php$ controllers/search.php

Le action de mon form est "rechercher.php" (fichier fictif) et visiblement le passage de variable se fait automatiquement quand on utilise un formulaire get... A la limite ca parraitrai presque logique. Il est tard, j'ai encore du boulot donc j'y reflechirais plus tard mais comme vous je commence à croire que le rewritting par htaccess c'est un peu la foire aux monstres...

Chez moi, c'est comme ça que ça se passe. Sur une Ubuntu 7.10 et sur une Gentoo 2006, toutes les deux avec Apache 2.2

J'ai testé le .htaccess a la fois sur XP et sur Slack 11 ainsi que sur le serveur de production (un 1&1 formule tiers-monde Linux/Apache) et il n'a jamais fonctionné. En revanche en passant par httpd.conf aucuns problemes (etrange quand meme...).

J'avais deja entendu dire que le rewritting par .htaccess c'etait la loterie, j'y avais pas fait attention mais visiblement c'etait vrai.

Pour ce qui est du "action=''" j'y avais pensé, malheureusement ca me donné toujours un "?" (site.com/?var=xxxx) et d'apres ce que j'ai compris, en cas de get par formulaire, les "?" sont "invisibles" au htaccess... De meme si on suit la philosophie de cette fantastique norme de normalisation standard qu'est XTHML 1.1 ca m'etonnerait beaucoup que ce genre d'astuce soit valide.

Donc probleme etrange, mais probleme REGLE, encore merci pour vos reponses.




 



Cette discussion est classé dans : php, recherche, regex, get, xxxx


Répondre à ce message

Sujets en rapport avec ce message

JAvascript et $_GET['xxxx']... [ par younes371 ] Bonjour,je veux afficher/masquer un div selon le contenu d'une variable de l url.si par exemple $_GET['etat']=serach  on masque le divsi non on afffic Regex PHP [ par Yann2704 ] Bonjours, Tous d'abord desoler si j'ai poster au mauvaise endroit, je savais pas ou poster alors j'ai mis dans divers... $OSuppr = fopen("Admin/DB/For if (isset($_GET [ par kelm_by ] salut tous le monde,je ne sais pas pourquoi ce code ne fonctione pas???????????????if (isset($_GET['l'])) {include 'l.php';}if (isset($_GET['id'])) {i Recherche petit codeur [ par Nucleotide ] Bonjour, Je me permet de poster sur ce forum car je suis a la recherche d'un programmeur php/sql pour la réalisation d'un site web. J'ai déjà réalisé recherche dévelopeur php [ par fcursoux ] Bonjour,Je recherche un développeur qui peut développer en php de chez lui et gagner un peu d'argent.merci de me contacter par mail: fcursoux@hotmail. moteur de recherche simple [ par donhatem ] Bonjour, je suis un peu novice en programmation, je veux que vous m'aidiez ou vous me donner quelque inforamtions : je cherche à créer un petit moteur Recherche bon programmeur php de confiance [ par TiGrou1204 ] Bonjour à tousJe travail actuellement sur un script pour ouvrir prochainement un site... Je suis actuellement a la recherche d'une personne ayant de t memory get usage [ par ntrvdonett ] Bonjour,J'ai un problème de fuite !!J'ai un script PHP qui tourne en fond sans Firefox (php5 monscript.php). Il récupère des fichiers sur d'autres mac recherche script PHP [ par matthieugoua ] bonjour a tous je viens vous voir car je suis actuellement a la racherche d'un script php qui aurait pour fonction de me donner en sortie ce code<img Recherche l'équivalent d'un Gridview en PHP [ par stigmate101 ] Salut, Je suis vraiment un débutant en php Je suis à la recherche d'une solution me permetant d'afficher des données à la manière d'un "Gridview" Merc


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,265 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.