Fichier .htaccess qui ne fonctionne pas : les solutions de configuration d'Apache

Tutoriaux > Linux > Fichier .htaccess qui ne fonctionne pas : les solutions de configuration d'Apache

Fichier .htaccess qui ne fonctionne pas : les solutions de configuration d'Apache
Selon votre configuration d'Apache, les fichiers .htaccess peuvent ne pas être pris en compte. Rien de plus frustrant que de ne pas pouvoir protéger un répertoire ! Voici quelques solutions.

Tester si ça fonctionne

Inutile de chercher à faire fonctionner de l'URL-Rewriting ou de la protection par .htpasswd si on ne sait pas si les .htaccess sont pris en compte par Apache...

On va donc créer un petit fichier .htaccess à la racine de notre site, et y insérer :

Deny from all

Si cela fonctionne, nous avons le message suivant qui s'affiche à la place de la page du site :

Citation de Apache

Forbidden


You don't have permission to access / on this server.
Apache/2.2.9 (Debian) PHP/5.2.6-1+lenny8 with Suhosin-Patch mod_python/3.3.1 Python/2.5.2 mod_perl/2.0.4 Perl/v5.10.0 Server at 192.168.1.250 Port 80



Un seul mot : AllowOverride

Si vos .htaccess ne répondent pas du tout, il y a d'énormes chances que cela vienne d'une ligne AllowOverride None cachée dans votre configuration Apache. Le problème étant de savoir où ! Choqué

J'écris ce rapide tutoriel car je viens de passer quelques temps à éplucher tous mes fichiers de configurations, de /etc/apache2/apache2.conf à posts.conf en passant pas httpd.conf...

Les fichiers possibles


Le AllowOverride None peut se cacher dans plusieurs fichiers :

  • /etc/apache2/apache2.conf

  • /etc/apache2/httpd.conf

  • /etc/apache2/sites-available/default



C'est dans ce dernier fichier que le mien se trouvait... J'ai une distribution Debian Lenny.
Voici à quoi le fichier ressemble maintenant, j'ai commenté les AllowOverride None et ai ajouté des AllowOverride All, pour que les .htaccess soient pris en compte dans le domaine /var/www

<VirtualHost *:80>
ServerAdmin [email protected]

DocumentRoot /var/www/
<Directory />
Options FollowSymLinks
AllowOverride All
# AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
Order allow,deny
AllowOverride All
# AllowOverride None
allow from all
</Directory>
</VirtualHost>


C'est surtout ces deux là qu'il faut enlever, ceux concernant votre dossier apache !Sourire

Redémarrer Apache

N'oubliez pas de redémarrer Apache pour prendre en compte la nouvelle configuration :

/etc/init.d/apache2 restart

Ou (Selon les distributions) :

service httpd restart


J'espère vous avoir évité quelques arrachages de cheveuxClin d'oeil


Par Pouzy , Le 27 Avril 2010 à 21h50
Ce tutoriel est la propriété d'Aidoweb et ne peut en aucun cas être copié.

Retour à Linux

Ajouter un commentaire

Suite a un fort volume de spam, les commentaires d'invités sont pour le moment désactivés. Vous devez vous inscrire ou vous identifier pour pouvoir commenter cet article, ou demander du support.

Commentaires sur cet article

abyss - Le 08 Août 2014 à 15h14

Bonjour,
merci pour cette précieuse aide !!
pensez a faire la même modif pour le port 443 plus bas dans le fichier, car si l'utilisateur tape https:votresite il aura de nouveau acces au fichier !!!

Yaume - Le 10 Novembre 2012 à 20h13

J'y ai passé la journée...
Merci beaucoup du coup de main !!!

Anesis - Le 11 Février 2012 à 16h12

Cette solution fonctionne, mais je voudrais rajouter une petite précision.

Si après avoir fait cette manipulation, ça ne fonctionne pas et vous vous retrouvez devant une erreur 500. Allez voir le log Apache qui vous dira de quoi il retourne.

Dans mon cas c'était le module "RewriteEngine" d'Apache qui n'étais pas activé et donc créait une erreur.

Lesny - Le 02 Octobre 2011 à 12h16

merciiiiiiiiiiiii beaucoup tu ma sauver la vie après 2semaines de non compréhension !!!

Zba - Le 10 Août 2011 à 00h11

Merci beaucoup !!!!

user29 - Le 02 Mars 2011 à 19h46

Merci beaucoup

Steeve - Le 04 Février 2011 à 14h08

Merci à vousClin d'oeil

damien - Le 09 Octobre 2010 à 17h08

Merci pour ce tuto trés précis et efficace qui m'a sauvé ma fin de journée.

Tutoriaux > Linux > Fichier .htaccess qui ne fonctionne pas : les solutions de configuration d'Apache