.htaccess checker

WRInaute discret
Je ne sais pas si ça existait déjà, en tout cas je n'ai rien trouvé du genre sur google (mais j'avais pas envie de chercher beaucoup :roll:)

En fait il s'agit simplement d'un page web qui à partir de votre url rewriting (assez basique pour l'instant) et d'une url (relative) donnée, vous calcule la page qui sera réellement affichée. J'avais envie de programmer ça et puis ça peut toujours être plus pratique... déjà c'est plus rapide que d'aller rechercher des erreurs dans des logs :roll:

Donc voilà, j'aimerais que vous le testiez un peu et me disiez ce que vous en pensez. L'adresse: .htaccess checker

Les améliorations auxquelles je pense (ce qui ne veut pas dire que je compte les faire :roll:):
  • Reconnaissance des rewritecond (avec des champs supplémentaires)
  • Lecture d'un fichier .htaccess complet et repèrage du rewriteengine on
  • possibilité d'uploader le fichier pour la vérification plutôt que devoir faire un copier coller
Merci d'avance pour vos tests, et n'hésitez pas à en faire profiter plein de monde si ça vous plait ;-) (ou simplement à demander à d'autres gens de tester aussi)
 
WRInaute impliqué
Je n'arrive pas à le faire fonctionner , peux tu me dire où est mon erreur stp ?

Code:
Htaccess : RewriteRule ^terrier_([0-9]*).* viewforum.php?f=$1
URI : viewforum.php?f=10
Résultat : viewforum.php
 
WRInaute discret
Je sais pas si c'est un manque de clarté de ma part, mais pour tester ta règle, il faudrait plutôt des urls du genre:
Code:
terrier_156.frgt
;-)

Au fait, pour l'instant, seul %{QUERY_STRING} peut-être utilisé dans la partie droite de la règle, mais j'ai oublié de faire qu'il s'ajoute à la fin s'il n'y a pas de "?" dans l'url réécrite :roll: Je ferai ça plus tard ;-)

Je vais regarder Futurama moi maintenant :p
 
WRInaute discret
C'est pas un générateur d'URL qui peuvent fonctionner hein :lol:

Au fait j'aimerais bien la confirmation de la bonne gestion des flags & cie:
  • Est-ce qu'il y en a d'autres que [NC] et [QSA] qui peuvent se combiner avec le reste ?
  • Lors d'un rewriting avec utilisation de [R], la redirection se fait bien directement sans continuer la réécriture ?
  • est-ce que les flags et les instructions (RewriteRule etc.) doivent toujours avoir la casse habituelle ou bien peut-on les écrire comme on veut ?
  • Dans quels cas l'ajout de la %{QUERY_STRING} à la fin de la réécriture se fait-elle ? Uniquement si l'url réécrite ne contient pas déjà un point d'interrogation ? Doit-on toujours l'écrire en majuscules ?
 
WRInaute discret
J'ai corrigé quelques trucs mais il subsite puor l'instant encore un bug: comme j'utilise les fonction ereg_replace() / eregi_replace(), pour certains paterns il foire complètement la réécriture :roll:

Exemple:
Code:
RewriteRule . index.php [L]
qui donnera
Code:
index.phpindex.phpindex.phpindex.phpindex.phpindex.phpindex.phpindex.phpindex.php...
avec autant de index.php que de lettres dans l'url donnée :roll:

Il est donc conseillé pour l'instant d'utiliser les marqueurs de début (^) et fin ($) de chaîne afin d'éviter cela. Par exemple cette règle peut se changer en:
Code:
rewriterule ^.*$ index.php
qui fonctionnera comme voulu ;-)

Je vais me faire un plaisir de corriger cela :D (et d'utiliser des fonctions de php que je n'avais encore jamais testé :p)

Edit: Zut je n'ai pas eu besoin des fonctions que je n'avais jamais testées car elle ne marchaient pas :roll: Mais normalement maintenant il n'y a plus de problème ;-)
Première utilité véritable pour moi de ce fichier, j'ai réussi à simplifier grandement mon htaccess, notemment en supprimant deux lignes :p, d'ailleurs je vais aller changer cela directement dans mon post Phpbb & Url Rewring: la solution simple :)
 
WRInaute discret
Personne n'a envie de répondre à mes questions ?
Personne n'a envie de faire d'autres tests ?
Parsonne n'a envie que je fasse encore des améliorations ? :roll:
 
WRInaute discret
Non pas encore (je l'avais dit tout au début :roll:), mais ça peut se faire...

Faudrait juste que je voie un peu tout ce qu'on peut faire avec les RewriteCond (à commencer par comment ils se commulent :roll:) enfait...

Pour les flags, est-ce que vous croyez qu'il faudrait que j'en ajoute d'autres ? Si oui, dites-moi lesquels et comment ils fonctionnent ;-) (je n'ai pas trouvé la liste sur le site d'Apache...)
 
WRInaute discret
Bon allez, je vais me lancer dans les rewritecond, mais pour commencer, merci de complèter ma liste de conditions vérifiables et répondre à mes quelques questions ;-)
  • %{REMOTE_HOST}
    identification de l'ordinateur
  • %{HTTP_USER_AGENT}
    identification du navigateur
  • %{REMOTE_ADDR}
    adresse IP du visiteur
  • %{QUERY_STRING}
    les paramètres passés par la méthode GET (après le "?" dans l'url)
    (ça doit être utilisable non ?)
Questions:
  • Peut-on concaténer ces paramètres avant la varification de condition ?
    Exemple:
    Code:
    RewiteCond %{REMOTE_HOST}%{REMOTE_ADDR} 127\.0\.0\.1
    RewriteRule .? page_cachee.html
  • Peut-on envisager d'utiliser autre chose que ces variables dans une RewriteCond ? Exemple tout bête:
    Code:
    RewriteCond bonjour jour
    RewriteRule ...
  • Existe-il un [XOR] (ou quelque chose de semblable) au lieu du [OR], qui permettrait de vérifier si une condition est vraie OU une autre est vraie mais pas les deux ? (j'en vois pas trop l'intérêt mais bon...)
  • Toutes les variables %{MACHIN} peuvent-elle être utilisées dans les RewriteRule ?

Si vous pensez aussi à d'autres chose qu'il ne faut pas que j'oublie, dites-le ;-) (même si c'est des trucs cons, on ne sait jamais :roll:)
 
Discussions similaires
Haut