2

我试图解开 Apache 处理程序。官方文档有以下示例:

以下指令将导致对带有 html 扩展名的文件的请求触发 footer.pl CGI 脚本的启动。

Action add-footer /cgi-bin/footer.pl
AddHandler add-footer .html

然后 CGI 脚本负责发送最初请求的文档(由 PATH_TRANSLATED 环境变量指向)并进行所需的任何修改或添加。

我尝试遵循这个例子。我的目录设置是:

  • /var/www/testsite/index.html
  • /var/www/testsite/cgi-bin/rp.sh

我的虚拟主机文件是:

<VirtualHost *:80>
       ServerName http://localhost-testsite
       DocumentRoot /var/www/testsite
       <Directory /var/www/testsite>
               Action footer /cgi-bin/rp.sh
               AddHandler footer .html
       </Directory>
       ErrorLog /var/www/logs/error-testsite.log
</VirtualHost>

如果我正确理解了文档,当请求 html 文件时,应该调用我的 rp.sh 脚本,并将 PATH_TRANSLATED 变量设置为 html 文件名。但是,当我在浏览器中打开 localhost-testsite/index.html 时,出现意外错误:

[Thu Mar 14 15:38:18 2013] [error] [client 127.0.0.1] File does not exist: /var/www/testsite/cgi-bin/rp.sh/index.html

我错过了什么吗?最重要的问题是:如何让 cgi 脚本处理所有具有特定扩展名的文件?

Apache 版本是 Apache/2.2.22 (Ubuntu)。所有文件和目录都有 777 权限。

4

0 回答 0