web-dev-qa-db-fra.com

Fichier .htaccess ignoré sur le serveur Ubuntu Apache 2

J'ai un problème avec un fichier .htaccess sur un serveur Ubuntu nouvellement installé et exécutant Apache2.

Le fichier .htaccess situé dans le répertoire où se trouvent les fichiers WordPress n'est pas pris en compte lors du chargement de pages par le serveur. Il n'y a pas d'instruction AllowOverride dans le fichier Apache2.conf, mais la valeur par défaut est All, et cela ne change rien si j'en inclut une.

J'ai essayé d'inclure le contenu du fichier local .htaccess dans une section. J'ai aussi essayé ceci:

<Directory /var/www/mydomain.com/html>
AllowOverride All
</Directory>

J'ai également essayé de changer toutes les occurrences de AllowOverride dans/etc/Apache2/sites-available/default (qui sont toutes définies sur Noneby default) à All.

Mais je n'ai pas eu de chance.

Pas sûr de savoir comment résoudre celui-ci.

2
Donald Jenkins

Les fichiers de configuration Apache que vous examinez sont-ils les mêmes que ceux utilisés par Apache?

Exécutez Apache2ctl -V et confirmez que l'entrée SERVER_CONFIG_FILE correspond à vos attentes et fait référence aux déclarations de VirtualHosts que vous consultez. (Pas un problème typique avec une nouvelle installation mais une possibilité si vous avez hérité de la configuration de quelqu'un d'autre)

Existe-t-il une directive AccessFileName qui spécifie autre chose que .htaccess?

Si tel est le cas, essayez de renommer vos fichiers .htaccess en conséquence ou de commenter la directive (si vous pouvez confirmer qu'aucun fichier de substitution existant ne la repose).

Existe-t-il une directive AllowOverride limitant les directives autorisées?

Il semble que vous ayez déjà recherché et résolu les problèmes liés à cette directive. Cependant, vous devrez également redémarrer Apache pour appliquer les modifications éventuelles aux directives AccessFilename ou AllowOverride.

Les directives de votre fichier de substitution sont-elles prises en charge par les modules installés?

Cela peut être particulièrement facile à manquer si vos directives de substitution sont encapsulées dans IfModule conditionals.

Le moyen le plus simple de tester consiste à ajouter une directive principale avant toute autre directive de substitution au fichier de substitution. Par exemple, au début de votre fichier .htaccess, ajoutez:

Order allow,deny
deny from all

Si votre fichier de remplacement est analysé par Apache, cela devrait amener Apache à refuser toutes les demandes relatives au répertoire. Si vos tests confirment que le fichier de remplacement est en cours d'analyse mais que les autres directives sont ignorées, vérifiez les modules installés et activez tous les modules dont vous aurez besoin - par exemple a2enmod rewrite (qui est probablement le module que votre installation WordPress tente d'utiliser, non activé par défaut avec certaines versions récentes d'Ubuntu)

2
danlefree