Je lance XAMPP et j’essaie d’apprendre comment fonctionne .htaccess. J’ai une structure de fichier qui ressemble à ceci:
/parent /foo /bar .htaccess
Je veux simplement changer toutes les requêtes foo
en bar
avec un paramètre GET ajouté après elles. Par exemple:
foo/ foo/hello.php
changer en:
bar/?test=yes bar/hello.php?test=yes
Lorsque j’essaie de placer la directive dans mon fichier .htaccess:
Options +Indexes
Je reçois le journal d’erreur suivant:
[Mar sept. 19 17: 23: 58.356362 2017] [core: alert] [pid 6336: tid 1900] [client :: 1: 60018] C: /xampp/htdocs/parent/.htaccess: <Répertoire non autorisé ici
J’ai vérifié mon fichier httpd.conf et tout va bien. Je suis sûr parce que si je change le contenu du fichier .htaccess simplement:
Options -Indexes
Il affiche correctement une erreur 403. Si je remplace le -
par +
, il affiche la liste des répertoires.
directive
n’est pas autorisée dans .htaccess et pour répondre à vos besoins, vous n’en avez même pas besoin dans .htaccess.
Vous pouvez utiliser cette règle dans la racine du site (parent) .htaccess
:
RewriteEngine On RewriteCond %{QUERY_STRING} !(?:^|&)test=yes(?:&|$) [NC] RewriteRule ^foo/(.*)$ bar/$1?test=yes [NC,QSA,L]
.htaccess
selon le manuel . Vous pouvez l'avoir uniquement dans la configuration du serveur et l'hôte virtuel. Vous devriez utiliser mod_rewrite
place.
Réponse courte: Supprimez simplement le fichier .htaccess et votre problème error.log disparaîtra.
Réponse plus longue:
J’ai commencé à recevoir le même message dans mon fichier C: \ xampp \ apache \ logs \ error.log plus tôt aujourd’hui. L’erreur a commencé soudainement (après des années d’utilisation de localhost sans accroc) et a coïncidé avec une “erreur de serveur 500” lorsque j’ai essayé de démarrer localhost.
Le contenu du fichier .htcaccess (apparu dans mon répertoire / Sites pour la première fois aujourd’hui) était:
AllowOverride All Order allow,deny
Comme d’autres l’ont noté en ce qui concerne les questions similaires .htcaccess, le fichier n’est généralement pas nécessaire.
J’ai donc simplement supprimé le fichier .htcaccess, qui a résolu le problème instantanément. Immédiatement, localhost a recommencé à fonctionner et l’erreur a disparu des journaux!