J'ai lu presque tout ce qui était possible sur ce problème et je ne trouvais rien qui puisse résoudre mon problème. : /var/www/vhosts/site.com/httpdocs/cgi-bin/cron.pl
En accédant au site, j'obtiens 403 Forbidden "Vous n'êtes pas autorisé à accéder à ce document." Erreur.
J'ai modifié mon .htaccess pour avoir ceci:
Options +FollowSymLinks +SymLinksIfOwnerMatch
AddDefaultCharset utf-8
RewriteEngine on
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule ^(.*) - [E=HTTP_CGI_AUTHORIZATION:%1]
.
.
.
J'ai aussi ajouté ceci à httpd.conf:
AddHandler cgi-script .cgi
AddHandler cgi-script .pl
<Directory />
Options -ExecCGI FollowSymLinks -Includes -IncludesNOEXEC -Indexes -MultiViews -SymLinksIfOwnerMatch
AllowOverride All
</Directory>
Vraiment, que puis-je faire ensuite?
Vérifiez que le répertoire dans lequel réside votre application Web n'est pas inclus dans un autre répertoire parent qui a restreint FollowSymLinks
.
La solution consiste à activer FollowSymLinks
dans le répertoire principal (répertoire parent) ou à déplacer votre application Web vers un répertoire situé en dehors du champ "no FollowSymLinks
" dans le répertoire parent.
Par exemple, la prochaine Apache
config pourrait être un problème et le reproduira sûrement:
<VirtualHost *:80>
...
<Directory "D:/">
Options Indexes
</Directory>
<Directory "D:/mywebfolder/">
Options Indexes FollowSymLinks
</Directory>
...
</VirtualHost>
Pour éviter ce problème:
<VirtualHost *:80>
...
<Directory "D:/">
Options Indexes FollowSymLinks
</Directory>
...
...
</VirtualHost>
Ou déplacez votre D:/mywebfolder/
vers une autre unité, par ex. E:/mywebfolder
Notez ceci à partir de la documentation Apache pour l'option :
Mélanger les options avec un + ou - avec ceux sans est une syntaxe non valide, et sera rejeté lors du démarrage du serveur par la vérification de la syntaxe avec un avorter.
Vous mélangez les options avec +/- et sans dans votre bloc (c'est-à-dire, suivezSymLiens).
J'ai eu la même erreur exacte aujourd'hui sur l'un de mes sites où j'avais oublié d'ajouter un "+" devant une option. J'ai ajouté le "+" et cela fonctionne maintenant.
J'ai eu ce problème et j'ai finalement trouvé que, parce que j'avais php configuré avec fast-cgi plutôt qu'en tant que module Apache, je devais mettre à jour le \conf\extra\httpd-fcgid.conf
puis ajouter FollowSymLinks
to ce bloc
<Files ~ "\.php$">
Options ExecCGI FollowSymLinks
AddHandler fcgid-script .php
FcgidWrapper "d:/php/php-cgi.exe" .php
</Files>
J'espère que cela aide quelqu'un et évite les heures que j'ai perdues.
J'ai récemment eu une erreur similaire et je l'ai corrigé pour moi. Une cause fondamentale possible de ce problème est que le dossier cible (dans lequel la réécriture est effectuée), mentionné dans le texte de l’erreur elle-même, n’a pas l’option FollowSymLinks définie. Dans votre message d'erreur, je vois que ce dossier est: /var/www/vhosts/site.com/httpdocs/cgi-bin/
Dans ce cas, vous pouvez utiliser dans .htaccess de ce dossier spécifique:
Options +FollowSymLinks
Ce paramètre ci-dessus ne fera qu'ajouter les FollowSymLinks de ce dossier au-dessus des options existantes (c'est ce que + signifie. Il ne fait qu'ajouter cette option).
Exemple:
<IfModule mod_rewrite.c>
RewriteEngine On
Options +FollowSymLinks
</IfModule>
Ce fut le cas où j'ai eu l'erreur et c'est comment je l'ai corrigé. Dans mon cas, il y avait un dossier différent (pas cgi-bin) et un fichier différent (un fichier PHP).
Attention:
Remarques:
Veuillez noter qu'en fonction des paramètres locaux/du navigateur, la mise à jour du fichier .htaccess peut ne pas fournir l'effet immédiatement dans le navigateur, lorsque vous tapez l'URL, et peut afficher le même résultat immédiatement, sans prendre en compte vos modifications apportées au fichier .htaccess. Dans ce cas, vous devrez peut-être redémarrer le navigateur pour voir l'effet de vos modifications. Pour les débutants, cela peut prendre beaucoup de temps lorsque vous essayez de le réparer, et vous demander pourquoi cela ne fonctionne pas. De plus, si vous modifiez httpd.conf (ce qui n'est pas le cas dans mon post), vous devez redémarrer le serveur Web.
En cherchant des solutions à mon erreur, j'ai remarqué sur le Web que cette erreur s'était également produite pour certaines personnes lors d'une installation de Plesk. Dans ce cas, la solution à ce problème spécifique consistait à éditer/etc/Apache2/mods-enabled/dir. conf et mettre à jour DirectoryIndex et déplacer index.php avant index.pl.
Mettez ceci dans votre répertoire racine:
<Directory />
#AllowOverride none
Require all denied
Options FollowSymLinks
Options SymLinksIfOwnerMatch
</Directory>
<Directory "root">
Options FollowSymLinks
Options SymLinksIfOwnerMatch
</Directory>