mod_rewrite 不適用於 Web 根目錄

mod_rewrite 不適用於 Web 根目錄

使用下面的 Apache/mod_rewrite 配置,對於根 /var/www/ 上的任何 CGI 腳本,我都會收到 403 禁止錯誤,但對於靜態文件,我不會收到任何錯誤。

根目錄之外的腳本(即 /var/www/random/script.cgi)可以正常工作,不會出現錯誤。

當 RewritedEngine 關閉時,即使在根目錄 /var/www/ 中,CGI 腳本也能正常運作

<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

相關內容