Dans presque toutes les solutions de "Comment activer htaccess", ils disent que le fichier / etc / apache2 / sites-available / default doit être édité. Mais ce fichier n'existe pas dans Apache 2.4.7
J'ai lu quelque part que le nouveau fichier par défaut est 000-default.conf. Alors j'ai édité celui-là et essayé d'ajouter la ligne:
AllowOverride All
Mais Apache2 n'a pas redémarré correctement et a généré une erreur. Dans une documentation apache2, j'ai constaté que AllowOverride n'est autorisé que dans cette <Directory>
section. Puis j'ai essayé d'ajouter ceci:
<Directory "/var/www">
AllowOverride All
</Directory>
Et cela semble fonctionner. Mais je ne sais pas si j'aurais dû y mettre / var / www. Est-ce une façon correcte de le faire ou mon ordinateur va-t-il exploser?
apache2
configuration
.htaccess
CluelessNoob
la source
la source
Réponses:
tl; dr
Oui c'est la bonne façon.
Mais pour être plus sémantique : oui, c’est la bonne façon de permettre
.htaccess
de surcharger toutes les directives du/var/www
répertoire.Comme vous l'avez découvert,
AllowOverride
est autorisé uniquement dans cetteDirectory
section.En utilisant votre exemple:
Cela indique à Apache que toutes les configurations peuvent être remplacées dans le
/var/www
sous-répertoire et dans tous ses sous-répertoires (de manière récursive).Pour un meilleur exemple, considérons que vous avez la configuration suivante dans votre hôte virtuel:
Et la structure de répertoire suivante:
Ce que j'ai fait ici, c'est créer un
.htaccess
dans chaque sous-répertoire du/var/www
répertoire.Cela ne devrait généralement pas être comme ça, mais ceci est juste pour l'exemple
En comparant la structure de répertoires à la configuration, cela signifie que tous les
.htaccess
fichiers du/var/www
dossier et de ses sous-répertoires, à l'exception du/var/www/uploads
répertoire et de ses sous-répertoires, peuvent remplacer tous les types de directives.Mais
/var/www/uploads
et ses sous-répertoires ne peuvent utiliser le.htaccess
fichier que pour remplacer les directivesAllow
,Deny
etOrder
.Remarque: À partir d'apache 2.4 (disponible par défaut dans 13.10+)
Allow
, les directives ,Deny
etOrder
ont été remplacées par une seule directive nomméeRequire
.la source
Activez d'abord la réécriture à l'aide de cette commande:
Puis redémarrez apache2:
Ensuite, allez dans le
sites-available
dossier:Modifier le fichier nommé
default
et le changementAllowOverride none
àAllowOverride All
. Il y a deux lignes où ce changement doit être fait.Cela fera
.htaccess
fonctionner votre serveur VPS.Cela a fonctionné sur un Ubuntu 12.04.5 VPS.
la source
default
fichier est appelé000-default.conf
et il ne contient pas laAllowOverride None
ligne.000-default.conf
et il n'est pas possible d'ajouterAllowOverride None
ici, si vous rechargez apache donne une erreur.htaccess
, il est préférable de les utiliserAllowOverride FileInfo
. Bien que FileInfo inclue déjà un grand nombre de directives, vous empêchez toujours que de nombreuses directives soient remplacées.Dans mon cas, cela a fonctionné comme ceci:
j'ai dû ajouter les lignes suivantes:
Donc ça ressemble à ça:
la source
Voici un extrait expliquant comment activer htaccess dans Apache 2.4 sans modifier la configuration par défaut:
la source