mod_rewrite не работает в корневом каталоге веб-сайта

mod_rewrite не работает в корневом каталоге веб-сайта

При использовании конфигурации Apache/mod_rewrite, представленной ниже, я получаю ошибку 403 «Запрещено» для любых CGI-скриптов в корневом каталоге /var/www/. Я не получаю никаких ошибок для статических файлов.

Скрипты из корневого каталога, т.е. /var/www/random/script.cgi, работают нормально, без ошибок.

При выключенном RewritedEngine CGI-скрипты работают нормально даже в корневом каталоге /var/www/

<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>  

решение1

Попробуйте скопировать работающий скрипт в root и посмотреть, работает ли он, если проблема не в conf. Используйте флаг -p cp, чтобы сохранить такие вещи, как разрешение на выполнение. Например:

cp -p /var/www/random/script.cgi /var/www/script.cgi

Связанный контент