Mit der unten stehenden Apache/mod_rewrite-Konfiguration erhalte ich für alle CGI-Skripte im Stammverzeichnis /var/www/ einen 403-Verboten-Fehler. Für statische Dateien erhalte ich keinen Fehler.
Skripte aus dem Stammverzeichnis, z. B. /var/www/random/script.cgi, funktionieren normalerweise ohne Fehler.
Wenn RewritedEngine ausgeschaltet ist, funktionieren CGI-Skripte auch im Stammverzeichnis /var/www/ normal.
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www
<Directory />
Options FollowSymLinks
Options SymLinksIfOwnerMatch
AllowOverride All
<IfModule mod_rewrite.c>
RewriteEngine on
</IfModule>
</Directory>
<Directory /var/www/>
Options +ExecCGI
Options SymLinksIfOwnerMatch
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
AddHandler cgi-script .cgi
DirectoryIndex index.cgi
</Directory>
<Files "index.cgi">
SetHandler perl-script
PerlHandler ModPerl::PerlRunPrefork
Options ExecCGI
PerlSendHeader On
allow from all
</files>
Antwort1
Versuchen Sie, ein funktionierendes Skript in das Stammverzeichnis zu kopieren und prüfen Sie, ob es funktioniert, falls es etwas ist, das nichts mit der Konfiguration zu tun hat. Verwenden Sie das Flag -p von cp, um Dinge wie die Ausführungsberechtigung beizubehalten. Beispiel:
cp -p /var/www/random/script.cgi /var/www/script.cgi