J'ai poussé mes fichiers .htaccess vers les serveurs de production, mais ils ne fonctionnent pas. Est-ce qu'un redémarrage serait la prochaine étape ou devrais-je vérifier autre chose.
J'ai poussé mes fichiers .htaccess vers les serveurs de production, mais ils ne fonctionnent pas. Est-ce qu'un redémarrage serait la prochaine étape ou devrais-je vérifier autre chose.
Réponses:
Un redémarrage n'est pas nécessaire pour les modifications apportées à .htaccess. Quelque chose ne va pas.
Assurez-vous que votre .htaccess inclut la déclaration
RewriteEngine sur
qui est obligatoire même s'il est également présent dans httpd.conf. Vérifiez également que .htaccess est lisible par le processus httpd.
Vérifiez le journal des erreurs - il vous informera de toute erreur dans .htaccess s'il est utilisé. Mettre une erreur de syntaxe intentionnelle dans .htaccess est une bonne vérification pour vous assurer que le fichier est 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 à l'aide de commandes telles que les suivantes dans votre httpd.conf:
RewriteLog "logs / rewritelog"
RewriteLogLevel 7
Le fichier journal ainsi généré vous donnera le détail sanglant des règles de réécriture correspondantes et comment elles ont été traitées.
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 n'importe quel nom peut être spécifié dans la directive AccessFileName ... Puisque les fichiers .htaccess sont lus à chaque demande, les modifications apportées à ces fichiers prennent effet immédiatement ...
D'après la documentation Apache: Le plus souvent, le problème est que AllowOverride n'est pas défini de telle sorte que vos directives de configuration soient respectées. Assurez-vous que vous n'avez pas de AllowOverride None en vigueur pour la portée de fichier en question. Un bon test pour cela est de mettre des déchets dans votre fichier .htaccess et de le recharger. Si une erreur de serveur n'est pas générée, alors vous avez presque certainement AllowOverride None en vigueur.
J'ai le même problème et il semble que l'article de PiedPiper sur AllowOverride ait été très utile. Vérifiez votre fichier httpd.conf pour "AllowOverride" et assurez-vous qu'il est défini sur Tous.
En cas de .htaccess, le redémarrage n'est pas nécessaire s'il ne fonctionne pas, les raisons probables incluent.
AllowOverride Peut ne pas être défini quel utilisateur peut définir dans httpd.conf ou doit contacter l'administrateur du serveur.
Vérifiez le nom de fichier de .htaccess, il devrait être .htaccess et non htaccess.txt.Voyez ici pour savoir comment en créer un.
Essayez d'utiliser Options -Indexes
ou une deny all
sorte de directive simple pour voir si cela fonctionne ou non.
effacez le cache du navigateur à chaque fois si vous avez une règle pour les redirections ou similaire si la redirection précédente est mise en cache, il semble que les choses ne fonctionnent pas.
LogLevel alert rewrite:trace7
. Après avoir redémarré Apache , vous devriez voir les traces dans le error.log J'espère que cela aide. http://httpd.apache.org/docs/2.4/mod/mod_rewrite.html#logging