我将此添加到我的.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。
我采取了以下步骤:
<Directory />
#Your SetHandler script here
#(@MrTux's script works here but NOT IN .htaccess)
Require all granted
</Directory>
我将注意到SetHandler传递了一些 header ,因此,如果您在
.htaccess
中声明此 header ,则很可能已经发送了 header ,这就是触发您的错误的原因。同样,如果您可以控制系统,则.htaccess
不是设置规则的首选方法。在这种情况下,可能仍然会导致安全问题。