Je veux régler le AllowOverride all
mais je ne sais pas comment le faire. J'ai trouvé le code suivant en effectuant une recherche sur Google et en le collant dans .htaccess
:
<Directory>
AllowOverride All
</Directory>
Mais après l'avoir collé, j'ai commencé à recevoir "Internal Server Error"
Quelqu'un peut-il me guider où mettre ce code ou comment le faire?
Si vous êtes sur Ubuntu, éditez le fichier /etc/Apache2/Apache2.conf
(ici nous avons un exemple de /var/www
):
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
et changez-le en;
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ensuite,
Sudo service Apache2 restart
Vous devrez peut-être aussi utiliser Sudo a2enmod rewrite
pour activer la réécriture du module.
Le but principal de AllowOverride
est que le gestionnaire des principaux fichiers de configuration d’Apache (celui qui se trouve dans/etc/Apache2/principalement) décide quelle partie de la configuration peut être modifiée de manière dynamique, chemin par chemin, par les applications. .
Si vous n'êtes pas l'administrateur du serveur, vous dépendez du niveau AllowOverride que ces administrateurs vous permettent. Afin qu'ils ne vous empêchent pas de modifier certains paramètres de sécurité importants;
Si vous êtes le gestionnaire de configuration Apache principal, vous devez toujours utiliser AllowOverride None
et transférer tous les exemples basés sur Google trouvés, basés sur les fichiers .htaccess dans des sections Directory
des fichiers de configuration principaux. En tant que contenu .htaccess pour un fichier .htaccess
dans /my/path/to/a/directory
est identique à une instruction <Directory /my/path/to/a/directory>
, sauf que la modification de configuration de .htaccess
dynamique par demande HTTP ralentit bas votre serveur web. Préférez toujours une configuration statique sans les vérifications .htaccess
(et vous éviterez également les attaques de sécurité par .htaccess
modifications).
En passant, dans votre exemple, vous utilisez <Directory>
et ce sera toujours faux, les instructions de répertoire contiennent toujours un chemin, comme <Directory />
ou <Directory C:>
ou <Directory /my/path/to/a/directory>
. Et bien sûr, cela ne peut pas être mis dans un .htaccess
car un .htaccess
est comme une instruction Directory mais dans un fichier présent dans ce répertoire. Bien sûr, vous ne pouvez pas modifier AllowOverride
dans un .htaccess
car cette instruction gère le niveau de sécurité de .htaccess
fichiers. .
Aller à your_severpath/Apache_ver/conf/
Ouvrez le fichier httpd.conf
dans le Bloc-notes.
Trouvez cette ligne:
#LoadModule vhost_alias_module modules/mod_vhost_alias.so
Supprimez le symbole de hachage:
LoadModule vhost_alias_module modules/mod_vhost_alias.so
Alors allez <Directory />
et passer à:
<Directory />
Options FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
Puis redémarrez votre serveur local.
Sous Linux, afin de détendre l’accès à la racine du document, vous devez éditer le fichier suivant:
/etc/httpd/conf/httpd.conf
Et selon le niveau de répertoire auquel vous souhaitez assouplir l'accès, vous devez modifier la directive.
AllowOverride None
à
AllowOverride All
Ainsi, en supposant que vous souhaitiez autoriser l'accès aux fichiers du répertoire/var/www/html, vous devez modifier les lignes suivantes:
<Directory "/var/www/html">
AllowOverride None
</Directory>
à
<Directory "/var/www/html">
AllowOverride All
</Directory>
Si vous utilisez Linux, vous pouvez éditer le code dans le répertoire de
/etc/httpd/conf/httpd.conf
maintenant, voici la ligne de code un peu comme
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# Options FileInfo AuthConfig Limit
#
AllowOverride None
#
# Controls who can get stuff from this server.
#
Order allow,deny
Allow from all
</Directory>
Remplacez AllowOveride None par AllowOveride All
Maintenant, vous pouvez définir n’importe quel type de règle dans votre fichier .httacess dans vos répertoires si un autre système d’exploitation tente de trouver le fichier httpd.conf et de le modifier.
Comme d'autres utilisateurs l'ont expliqué à propos de l'utilisation de allowoveride, qui permet d'autoriser l'utilisation de .htaccess. Une chose que je tiens à souligner, c'est que n'utilisez jamais allowoverride si tous les autres utilisateurs ont accès à écrire .htaccess, utilisez plutôt allowoveride pour autoriser certains modules.
Tels que AllowOverride AuthConfig mod_rewrite
au lieu de
AllowOverride All
Parce que module comme mod_mime peut rendre vos fichiers côté serveur en texte brut.
Je pense que vous voulez le définir dans votre fichier httpd.conf
à la place du fichier .htaccess
.
Je ne suis pas sûr du système d'exploitation que vous utilisez, mais ce lien pour Ubuntu peut vous donner des indications sur ce qu'il faut faire.
https://help.ubuntu.com/community/EnablingUseOfApacheHtaccessFiles
J'ai également rencontré ce problème et j'ai trouvé la solution en 2 étapes ci-dessous: 1. Dans le dossier Apache2 activé pour les sites, vous modifiez l'élément Directory en définissant "AllowOverride all" (doit être "all", pas "none") 2. Dans le projet kohana du dossier www, renommez "example.htaccess" en ".htaccess".
Je l'ai fait sur Ubuntu. J'espère que cela vous aidera.
SuSE Linux Enterprise Server
Assurez-vous d’éditer le bon fichier https://www.suse.com/documentation/sles11/book_sle_admin/data/sec_Apache2_configuration.html
httpd.conf
Le fichier de configuration du serveur Apache principal. Évitez de modifier ce fichier. Il contient principalement des instructions include et des paramètres globaux. Remplacez les paramètres globaux dans les fichiers de configuration pertinents listés ici. Modifiez les paramètres spécifiques à l’hôte (tels que la racine du document) dans votre configuration d’hôte virtuel .
Dans ce cas, vhosts.d/*.conf
doit être modifié