Devez-vous redémarrer Apache pour que les règles de réécriture du fichier .htaccess prennent effet?

StackOverflow https://stackoverflow.com/questions/142559

Question

J'ai poussé mes fichiers .htaccess vers les serveurs de production, mais ils ne fonctionnent pas. Un redémarrage serait-il la prochaine étape ou devrais-je vérifier autre chose?

Était-ce utile?

La solution

Un redémarrage n'est pas nécessaire pour modifier le fichier .htaccess. Quelque chose ne va pas.

Assurez-vous que votre .htaccess comprend la déclaration

  

RewriteEngine on

qui est requis même s'il est également présent dans httpd.conf. Vérifiez également que .htaccess est lisible par le processus httpd.
Consultez le error_log. Il vous signalera les erreurs éventuelles dans .htaccess si il est utilisé. Mettre une erreur de syntaxe intentionnelle dans .htaccess est un bon moyen de vérifier que le fichier est bien utilisé. Vous devriez obtenir une erreur 500 sur n’importe quelle page du même répertoire.

Enfin, vous pouvez activer un journal de réécriture en utilisant les commandes suivantes dans votre httpd.conf:

  

RewriteLog "logs / rewritelog"

     

RewriteLogLevel 7

Le fichier journal ainsi généré vous donnera les détails sanglants des règles de réécriture correspondantes et de la manière dont elles ont été traitées.

Autres conseils

Non :

  

Apache permet une gestion décentralisée de la configuration via des fichiers spéciaux placés dans l’arborescence Web. Les fichiers spéciaux sont généralement appelés .htaccess , mais tout nom peut être spécifié dans AccessFileName ... Les fichiers .htaccess étant lus à chaque requête, les modifications apportées à ces fichiers prennent effet immédiatement ...

À partir de la documentation Apache: Le plus souvent, le problème est que AllowOverride n'est pas défini de sorte que vos directives de configuration soient respectées. Assurez-vous que AllowOverride None n'est pas en vigueur pour l'étendue du fichier en question. Un bon test pour cela consiste à jeter des ordures dans votre fichier .htaccess et à recharger. Si aucune erreur de serveur n’est générée, il est presque certain que AllowOverride None est en vigueur.

Seulement si pas n'a pas ajouté le module mod_rewrite à Apache.

Vous devez uniquement redémarrer Apache si vous modifiez un Apache " .conf " fichiers.

J'ai le même problème et il semble que les commentaires de PiedPiper sur AllowOverride ont été des plus utiles. Recherchez dans le fichier httpd.conf & Allow; AllowOverride " et assurez-vous qu’il est réglé sur Tous.

Dans le cas de .htaccess, le redémarrage n'est pas nécessaire s'il ne fonctionne pas, notamment.

Qu'y a-t-il dans votre .htaccess? RewriteRules? Vérifiez que mod_rewrite est installé et activé.

D'autres choses? Essayez de définir AllowOverride sur "all" dans ce répertoire.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top