我正在做的简短解释是:我需要为我的机器上的每个IP地址自动创建虚拟主机,使其指向vsftpd用户目录(/ home / xxx)并拒绝任何类型的脚本执行。
我想阻止任何类型的网页,特别是PHP脚本被执行,因为它会发布巨大的安全风险(apache是sudo)。这个虚拟主机的目的纯粹是为了提供游戏资源文件,如.wav,.mdl,.tga,.spr等扩展。
我四处搜寻,发现了这个
deny from all
<filesmatch "\.(avi¦wmv¦mpg¦mov)$">
Allow from all
</filesmatch>
但这是.htaccess内容。如何实现仅在httpd.conf文件中允许某些扩展的功能?使用.htaccess会带来很大的痛苦,因为用户可能会编辑风险。
请不要提出任何与我的问题无关的评论,例如“sudo apache?你是个笨蛋”等等。
答案 0 :(得分:3)
没有.htaccess这样的东西只有内容。这是一个巨大的误解。大多数时候你做 NOT 想要使用.htaccess
,Apache建议你除非必要,否则不要使用它。 Apache规则总是可以放在服务器配置中。
现在您可以将它放在VirtualHost指令中。定义文档根目录的位置。
可以在这些上下文中使用FilesMatch指令。
上下文:服务器配置,虚拟主机,目录,.htaccess
http://httpd.apache.org/docs/current/mod/core.html#filesmatch
因此,在您的vhost文件中,您可以像这个示例一样添加Directory指令。
<Directory /path/to/documentroot/>
Deny from all
<FilesMatch "\.(avi|wmv|mpg|mov)$">
Allow from all
</FilesMatch>
</Directory>
如果您使用Apache 2.4
,则需要使用Require
。
<Directory /path/to/documentroot/>
Require all denied
<FilesMatch "\.(avi|wmv|mpg|mov)$">
Require all granted
</FilesMatch>
</Directory>