如何让Apache停止服务所有未知的文件types(如.php〜)?

我来自IIS并转移到Apache,最近发现,Apache默认情况下提供未知文件扩展名的文件作为纯文本。

这可能是一个问题,如果用户使用某些程序备份.php文件为.php〜。 然后通过在浏览器中导航到.php文件变得完全可读。 更糟糕的是,这些.php文件通常被认为在用户的linux环境中是“隐藏的”,所以有些甚至不知道它们存在。 机器人已经创build了这个事实,冲刷互联网寻找stream行的文件名备份,并从中提取可能的安全信息。

我已经知道如何停止提供.php文件或任何特定的文件扩展名。 我也知道不要使用任何编辑器来保存这样的备份文件。

我的问题是,我怎么能阻止这个默认的Apache服务的所有非MIME文件types的行为呢? 我只是不喜欢这种行为,并希望阻止它。 我不希望它提供.aspx〜,.html〜,.bob,.carl,没有扩展或其他任何不是真正的MIMEtypes。

我知道我可以去使用一个指令来首先拒绝访问所有文件types。 然后添加我想要一个接一个的服务。 但是我想知道是否有更简单/更快的方法。

谢谢你的帮助。

Apache HTTPd默认使用MIMEtypesapplication / octet-stream来处理未知文件。 因此,你应该(理论上)能够使用mod_actions来设置一个动作,如下所示:

Action application/octet-stream /cgi-bin/unknown-mime-type.cgi 

CGI脚本当然必须可用且可执行,或者您可以为给定path添加重写以提供404页面。 我不确定这是否明智。