mod_rewrite funktioniert nicht im Web-Stammverzeichnis

mod_rewrite funktioniert nicht im Web-Stammverzeichnis

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

verwandte Informationen