Comment déboguer.htaccess RewriteRule ne fonctionne pas

j'ai un RewriteRule dans un fichier .htaccess qui ne fait rien. Comment puis-je résoudre ce problème?

  • Comment puis-je vérifier si le fichier .htaccess est lu et obéi par Apache? Puis-je écrire un message echo "ça marche", si je l'écris, où cette ligne sera-t-elle reprise?
  • si le fichier .htaccess n'est pas utilisé, Comment puis-je faire en sorte Qu'Apache l'utilise?
  • Si le .htaccess est utilisé mais mon RewriteRule n'a toujours pas d'effet, que puis-je faire de plus pour déboguer?
108
demandé sur Mark Amery 2012-02-11 00:18:51

7 réponses

Inscrivez une valeur approximative dans votre .htaccess par exemple foo bar , sakjnaskljdnas tout mot-clé non reconnu par htaccess et visitez votre URL. Si cela fonctionne, vous devriez obtenir un

500 Erreur De Serveur Interne

Erreur Interne Du Serveur

le serveur a rencontré une erreur interne ou une mauvaise configuration et n'a pas été en mesure de répondre à votre demande....

je vous suggère de le mettre peu après RewriteEngine on .


puisque vous êtes sur votre machine. Je suppose que vous avez accès au fichier apache .conf .

ouvrir le fichier .conf , et chercher une ligne similaire à:

LoadModule rewrite_module modules/mod_rewrite.so

si elle est commentée(#), décommentez et redémarrez apache.


journal de réécriture

RewriteEngine On
RewriteLog "/path/to/rewrite.log"
RewriteLogLevel 9

mettez les 3 lignes ci-dessus dans votre virtualhost . redémarrez le httpd.

RewriteLogLevel 9 L'utilisation d'une valeur élevée pour Level ralentira considérablement votre serveur Apache! Utilisez le logfile de réécriture à un niveau supérieur à 2 uniquement pour le débogage! Le niveau 9 enregistrera presque tous les détails de la réécriture.


mise à JOUR

les choses ont changé dans Apache 2.4:

de Passage de 2,2 à 2,4

"

les directives RewriteLog et RewriteLogLevel ont été supprimées. Cette fonctionnalité est maintenant fournie en configurant le niveau approprié de journalisation pour le module mod_rewrite à l'aide de la directive LogLevel . Voir aussi la section logging mod_rewrite.

pour plus sur LogLevel, se référer LogLevel Directive

vous pouvez accomplir

RewriteLog "/path/to/rewrite.log"

de cette manière maintenant

LogLevel debug rewrite_module:debug
136
répondu ThinkingMonkey 2016-01-22 14:56:32

la réponse "entrer une valeur de camelote" n'a pas fait l'affaire pour moi, mon site continuait à charger malgré la camelote entrée.

à la place j'ai ajouté la ligne suivante en haut de la .fichier htaccess:

deny from all

cela vous fera vite savoir si .htaccess est ramassé ou pas. Si l' .htaccess est utilisé, les fichiers de ce dossier ne se charge pas du tout.

44
répondu caitriona 2014-02-13 14:58:09

en général, tout changement dans le .htaccess doit avoir des effets visibles. Si aucun effet, vérifiez votre fichier de configuration apache, quelque chose comme:

<Directory ..>
    ...
    AllowOverride None
    ...
</Directory>

doit être remplacé par

AllowOverride All

et vous pourrez changer les directives .fichiers htaccess.

32
répondu jgpATs2w 2013-05-04 21:06:33

peut-être plus logique serait de créer un fichier (par exemple, test.html), ajouter du contenu et essayer de le Définir comme la page d'index:

DirectoryIndex test.html

Pour la plupart, l' .la règle htaccess annulera la configuration D'Apache lorsque vous travaillez au niveau du répertoire / fichier

5
répondu Cez 2012-02-10 20:46:08

si vous avez accès au répertoire bin apache, vous pouvez utiliser,

httpd -M vérifier d'abord les modules chargés.

 info_module (shared)
 isapi_module (shared)
 log_config_module (shared)
 cache_disk_module (shared)
 mime_module (shared)
 negotiation_module (shared)
 proxy_module (shared)
 proxy_ajp_module (shared)
 rewrite_module (shared)
 setenvif_module (shared)
 socache_shmcb_module (shared)
 ssl_module (shared)
 status_module (shared)
 version_module (shared)
 php5_module (shared)

après que des directives simples comme Options -Indexes ou deny from all vont solidifier cela .htaccess fonctionne correctement.

3
répondu Abhishek Gurjar 2017-04-27 07:01:42

pour tester vos règles de réécriture de htaccess, remplissez simplement l'url à laquelle vous appliquez les règles, placez le contenu de votre htaccess sur la zone d'entrée plus grande et appuyez sur le bouton" Test".

http://htaccess.mwl.be /

1
répondu Ganesh Kandu 2018-01-25 11:10:09

pourquoi ne pas mettre de la camelote dans votre .htaccess file et essayer de recharger apache. Si apache ne démarre pas, vous savez que cela fonctionne. Retirez la camelote puis rechargez apache s'il charge des congrats que vous avez configurés .htaccess correctement.

0
répondu Ben Rabidou 2012-02-10 20:22:13