我将此添加到我的.htaccess文件中:

AddHandler fcgid-script .test

(我正在使用FastCGI/VirtualMin/WebMin)

并用内容创建了一个test.test文件;
<?php echo "test"; ?>

这将导致内部服务器错误,并在错误日志中显示以下消息:
[Thu Apr 16 14:12:57.631287 2015] [fcgid:warn] [pid 2646] (104)Connection reset by peer: [client xxxx:53595] mod_fcgid: error reading data from FastCGI server
[Thu Apr 16 14:12:57.631402 2015] [core:error] [pid 2646] [client xxxx:53595] End of script output before headers: test.test

我究竟做错了什么?我尝试使用不同的处理程序名称,例如x-httpd-php或x-httpd-php5,但这根本不起作用。

我也尝试过:
<FilesMatch "\.test$">
  SetHandler fcgid-script
</FilesMatch>

但它具有相同的内部服务器错误。

最佳答案

经过测试和验证可以正常工作:
因为您提到您正在使用Webmin,所以我为Webmin量身定制了答案。您也可以通过Shell编辑Apache的配置来完成此操作。
我将注意到,通常最好编辑Apache的配置,在这种情况下可能是不可避免的,因为我不相信您可以在.htaccess中进行这种编辑。尽管可能有一些我不熟悉的黑客,但是服务器管理员可能希望将此锁定在apache配置中。对带有恶意文件扩展名的.htaccess文件的思考在每个目录中四处传播,这不仅听起来很慢,而且非常不安全。
脚步
我通过VirtualBox在Ubuntu 14.04上安装了Apache。我添加了Webmin和FastCGI。
我采取了以下步骤:

  • 登录Webmin,转到您的虚拟主机。
  • 单击编辑指令
  • 在底部添加以下内容:
  • <Directory />
        #Your SetHandler script here
        #(@MrTux's script works here but NOT IN .htaccess)
    
        Require all granted
    </Directory>
    
  • 单击保存
  • 单击顶部的“应用更改”。
  • 完成!

  • 我将注意到SetHandler传递了一些 header ,因此,如果您在.htaccess中声明此 header ,则很可能已经发送了 header ,这就是触发您的错误的原因。同样,如果您可以控制系统,则.htaccess不是设置规则的首选方法。在这种情况下,可能仍然会导致安全问题。

    10-06 11:32