mod_rewrite 无法在 Web 根目录上运行

mod_rewrite 无法在 Web 根目录上运行

使用下面的 Apache/mod_rewrite 配置时,对于根目录 /var/www/ 上的任何 CGI 脚本,我都会收到 403 禁止错误,但是对于静态文件,我不会收到任何错误。

根目录之外的脚本,即 /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

尝试将正在运行的脚本复制到根目录,看看它是否有效,以防它与 conf 无关。使用 cp 的 -p 标志来保留执行权限等内容。例如:

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

相关内容