Quelque qestion sur l'URL rewriting

mistic10 Messages postés 11 Date d'inscription samedi 12 mars 2011 Statut Membre Dernière intervention 1 septembre 2012 - 23 août 2012 à 16:07
mistic10 Messages postés 11 Date d'inscription samedi 12 mars 2011 Statut Membre Dernière intervention 1 septembre 2012 - 1 sept. 2012 à 12:33
bonjour
je débute dans le domaine du rewriting et je me pose quelque questions aux quel j'aimerai trouver des réponses avant de modifier mon code.
malheureusement les moteur de recherche ne mon pas beaucoup aidé.
si j'ai bien compris le drapeau "QSA" permet de garder la partie de l'URL qui contiens les paramètres pour les variables "GET".
dans une règle de réécriture:
RewriteRule ^accueil.html$ web/front.php?module=site&action=index [QSA,L]

la présence du "$" après ".html" peut il empêcher l'URL d'être repérer par apache si elle contient des paramètres "accueil.html?maVar=val"?

j'ai vu qu'il était possible de définir des variable d'environnement dans le drapeau de la règle:
RewriteRule ^accueil.html web/front.php [QSA,L,E=module:site,E=action:index]

et de récupérer c'est variable par le biais de:
$_SERVER['REDIRECT_module']//et
$_SERVER['REDIRECT_action']

mais je ne sais pas si le tableau "$_SERVER" est prévue pour ce genre de procédés.
cela peut il provoqué des bug ou des failles de sécurité dans le site?
faut il prendre des précautions avec ce genre de procédés?

dernière question.
l'URL rewriting est il plus rapide que les autres méthodes de redirection (php, javascript)?

merci d'avance pour vos lumières.

ps: pour la premier question je pourrais trouver la réponse après un simple teste mais si certain détail (ou explication) peuvent m'être apporté je suis pas contre!

merci

2 réponses

BBFUNK01 Messages postés 1310 Date d'inscription jeudi 16 juillet 2009 Statut Membre Dernière intervention 20 juin 2014 6
27 août 2012 à 23:02
Hello,

je ne suis pas un expert en urlrewriting mais si ton url à réécrire peut contenir des variables différentes, aussi bien par rapport au nombre de variables que tu passes en GET que par rapport au nom des variables il te faudra écrire une règle différente pour chaque cas de figure, en prenant soin de mettre en 1er les URL à réécrire qui sont les plus complexes.
Lorsque tu mets un .htaccess sur ton serveur celui-ci est lu à chaque chargement de fichier, quelque soit le type de fichier (image, vidéo, .php, .js, .html, etc.), et en urlrewriting lorsque le fichier lu correspond à une règle de réécriture le .htaccess cesse d'être lu.
Pour ma part je fais mes redirections en .php, car je n'effectue des redirections en fonction des requêtes que j'effectue sur mes BDD.
En tout cas, s'il s'avère que l'urlrewriting puisse être plus rapide qu'en PHP ou en JS, ça doit se jouer au millième de seconde donc si c'est plus confortable pour toi de le faire en PHP ou en JS, fait-le en PHP ou en JS

A plus ;)

BBFUNK01

//C'est en forgeant qu'on devient forgeron... ;-) ;

musichrono
0
mistic10 Messages postés 11 Date d'inscription samedi 12 mars 2011 Statut Membre Dernière intervention 1 septembre 2012
1 sept. 2012 à 12:33
salut BBFUNK01

merci pour ta réponse.

c'est vrai que PHP me semble plus confortable, mais comme tu le dis toi même "C'est en forgeant qu'on devient forgeron" et je pars à la chasse à la performance car mon code est complètement orienté objet et donc un peut lourd.
le moindre millième de seconde me parait donc important.

je t'avoue que ce qui m’inquiète le plus sont les éventuelles bugs ou failles de sécurité provoquées par l'utilisation du tableau "$_SERVER['REDIRECT_maVar']" et du drapeau "E=maVar:value" que j'aimerai utiliser pour les modules et action a exécuter en fonction de l'URL, ce qui je pense peut éviter les problèmes d'URL réécrite par l'internaute.
n’ayant jamais utilisé ce genre de procédé j'aimerai savoir si il y a des précautions a prendre ou des techniques particulières pour protéger le serveur.

tu me dis dans ta réponse qu'il faut mettre en 1er les URL a réécrire les plus complexes. pourquoi?

merci encore pour tes lumières

mistic10
0
Rejoignez-nous