Comment activer l'utilisation de .htaccess dans Apache sur Ubuntu?


15

J'essaie d'activer l'utilisation du fichier htaccess dans Ubuntu 14.04 (Apache 2.4.7). Je sais que cette question a de nombreux doublons possibles, mais aucun d'eux ne m'a encore aidé.

.htaccess

ErrorDocument 404 /404.html

000-default.conf

<VirtualHost *:80>
AccessFileName .htaccess

ServerAdmin webmaster@localhost
DocumentRoot /var/www

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

<Directory /var/www/>
  Options Indexes FollowSymLinks Includes
  AllowOverride All
  Order allow,deny
  Allow from all
</Directory>
</VirtualHost>

Que faut-il d'autre?


1
La directive AllowOverride All autorise toutes les options du fichier .htaccess. Le fichier 000-default.conf suppose qu'il n'y a qu'un seul site sur votre serveur. Le fichier .htaccess ne fonctionne-t-il pas pour vous? Y a-t-il plusieurs sites hébergés sur ce serveur?
closetnoc

Il existe de nombreux dossiers dans / var / www mais aucun hôte virtuel n'est créé. Le dossier / etc / apache2 / sites-available / contient deux fichiers, 000-default.conf et default-ssl.conf. Le fichier htaccess se trouve dans / var / www /
David ZIP

Peut-être 'DocumentRoot / var / www /'? (barre oblique de fin)
Kovah

Vérifiez que / etc / apache2 / sites-enabled / contient un lien vers 000-default.conf. Si vous modifiez le fichier /var/www/index.html, vous pouvez voir les modifications lorsque vous affichez le serveur avec un navigateur Web, non?
Stephen Ostermiller

Réponses:


26

Premier pas

Ouvrir le fichier en tant que

sudo vim /etc/apache2/apache2.conf

Deuxième étape

supprimer le signe de commentaire (#) si vous le trouvez avant cette ligne (numéro de ligne 187 environ)

AccessFileName .htaccess

Troisième étape

Ensuite, trouvez la ligne où il y a

<Directory /var/www/>
     Options Indexes FollowSymLinks
     AllowOverride None
     Require all granted
</Directory>

remplacer "Aucun" par "Tous"

AllowOverride All

Et voila ... ça .htaccessmarche !!


3
les modifications n'ont pris effet qu'au redémarrage de la commande apache: service apache restart
Tahir Yasin

1
Je suggère, comme @TahirYasin le mentionne, de redémarrer apache. sudo service apache2 restart.
www139


1

Dans mon cas , le changement AllowOverride Nonede AllowOverride Alldans /etc/apache2/sites-enabled/000-default.conf aidé.

Tous les autres fichiers .conf l' ont déjà fait AllowOverride All.


0
  1. Dans /etc/apache2/apache2.conf, supprimez le signe de commentaire ( #) deAccessFileName .htaccess
  2. Le nom de votre fichier de configuration Apache n'est pas standard. Vous pouvez le renommer par défaut.conf sous Windows et le renommer par défaut sous Linux. Sous Linux, exécutez ce code dans le terminal:

    sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/default
    

Il est nommé avec les zéros pour qu'il apparaisse d'abord par ordre alphabétique. Si vous avez un fichier default.conf et que vous créez un site pour anteater.com, alors anteater devient l'hôte par défaut car il est chargé en premier. Gardez le 000 pour éviter de tels problèmes. Le nom du fichier conf ne devrait pas avoir à voir avec le fait que .htaccess fonctionne ou non.
Stephen Ostermiller

1
'AccessFileName .htaccess' n'est déjà pas commenté. La réponse ci-dessus m'a aidé. Merci.
David ZIP
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.