Apache mod_action 产生 404 错误

Apache mod_action 产生 404 错误

我正在尝试为 Apache 中的某些文件设置自定义操作处理程序(在 Ubuntu 上运行)。在我看来,我已经为操作处理程序正确设置了站点配置,但现在每当我访问它处理的任何文件时,都会出现 404 错误。

如果我删除动作处理程序,文件 200s 将如预期一样显示为文本,因此该文件确实存在。

以下是站点配置:

<VirtualHost *:80>
        ServerName foo.com
        ServerAdmin [email protected]
        DocumentRoot /home/foo/www

        AddHandler application/x-httpd-php .php .php3 .php4 .php5 .html .htm

        Action test-script "/usr/lib/cgi-bin/tts.cgi"
        AddHandler test-script .tts
</VirtualHost>

<Directory "/home/foo/www">
    Options Indexes FollowSymLinks Includes ExecCGI
    AllowOverride All
    Order allow,deny
    Allow from all
    Require all granted
</Directory>

tts以下是我希望在点击任何文件时执行的测试脚本:

#!/bin/bash
printf "Content-type: text/html\n\n"
printf "Hello World!\n"

答案1

首先,确保使用以下命令启用 CGI 模块:

a2enmod cgid

并尝试添加AddHandler上面Action

AddHandler test-script .tts
Action test-script "/usr/lib/cgi-bin/tts.cgi"

如果您想运行 CGI 脚本,只需使用如下配置:

<Directory "/var/www/html/cgi">
    Options +ExecCGI
    AddHandler cgi-script .cgi .pl .py .rb
</Directory>

相关内容