Accueil > Forum > > > > Mod rewrite, regex et autres joyeuseries
Mod rewrite, regex et autres joyeuseries
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ée 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
Livres en rapport
|
Derniers Blogs
GESTION D'EXCEPTION AVEC LES TASKSGESTION D'EXCEPTION AVEC LES TASKS par richardc
Nous avons vu dans un précédent article comment utiliser Task pour effectuer des opérations dans un autre thread.
Malheureusement, comme tout le monde n'est pas parfait, il se peut que cette exécution se passe mal et qu'une exception se produise.
La...
Cliquez pour lire la suite de l'article par richardc DéMARRONS AVEC LES TASKSDéMARRONS AVEC LES TASKS par richardc
Que vous le vouliez ou non, le développement multi-tâche est maintenant une obligation pour toute nouvelle application. Il est donc vital d'en comprendre les mécanismes et de s'y mettre le plus tôt possible.
En attendant le .NET Framework 4.5 avec le...
Cliquez pour lire la suite de l'article par richardc SLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPSSLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPS par Vko
Retrouvez les slides et les démo de ma session Fast & Furious XAML Apps. A ceux qui se posent la question : "est-ce que le code de la DataGrid est disponible?", je vous répondrais "pas encore". Je vais mettre en place un projet codeplex pour part...
Cliquez pour lire la suite de l'article par Vko XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Forum
CHAMPS TIMECHAMPS TIME par vargas
Cliquez pour lire la suite par vargas
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|