J'ai deux problèmes principaux avec mod_rewrite:
1) Aucune erreur significative n'est signalée lorsque j'ai une règle invalide
2) Pour tester de manière fiable chaque modification, je dois effacer le cache de chrome. Ce n'est pas sorcier, mais je dois appuyer sur Ctrl + Maj + Suppr puis cliquer sur OK, puis fermer la fenêtre et recharger.
J'aimerais voir si l'un des gourous est prêt à partager ses secrets pour gérer efficacement le code mod_rewrite.
apache
mod-rewrite
vomir
la source
la source
Réponses:
Une astuce consiste à activer le journal de réécriture. Pour l'activer, essayez ces lignes dans votre configuration principale apache ou dans le fichier d'hôte virtuel actuel ( pas dans
.htaccess
):Depuis Apache httpd 2.4 mod_rewrite , les directives RewriteLog et RewriteLogLevel ont été complètement remplacées par la nouvelle configuration de journalisation par module.
la source
RewriteEngine On
section là aussi parce que si vous ne l'activez (comme je l'ai fait) que dans le.htaccess
fichier, alors rien ne sera enregistré.La directive LogRewrite mentionnée par Ben n'est plus disponible dans Apache 2.4. Vous devez utiliser la directive LogLevel à la place. Par exemple
Voir http://httpd.apache.org/docs/2.4/mod/mod_rewrite.html#logging
la source
tail -f error_log|fgrep '[rewrite:'
AllowOverride
c'était régléAll
!Pour la résolution d'URL de base, utilisez un extracteur de ligne de commande comme
wget
oucurl
pour effectuer les tests, plutôt qu'un navigateur manuel. Ensuite, vous n'avez à vider aucun cache; juste la flèche vers le haut et entrez dans un shell pour réexécuter vos extractions de test.la source
Il y a le testeur htaccess .
Il montre quelles conditions ont été testées pour une certaine URL, lesquelles répondaient aux critères et quelles règles ont été exécutées.
Il semble cependant y avoir des problèmes.
la source
En vous basant sur la réponse de Ben, vous pouvez faire ce qui suit lorsque vous exécutez apache sur Linux (Debian dans mon cas).
Créez d'abord le fichier rewrite-log.load
/etc/apache2/mods-availabe/rewrite-log.load
Puis entrez
suivi par
Et lorsque vous avez terminé le débogage de vos règles de réécriture
la source
LogLevel warn rewrite:trace8
ouLogLevel info rewrite:trace8
où 8 peut être n'importe quel nombre de 1 à 8