如何只允许Apache中的某些文件

我想过滤访问某些文件在Apache。 我只想要CGI访问。 所以我试着把vhost文件放进去:

<FilesMatch "\.cgi$"> Order allow,deny Allow from all </FilesMatch> <FilesMatch "."> # All other files Order allow,deny Deny from all </FilesMatch> 

但是后者压倒一切。

谢谢

我相信你需要交换你的Order指令中的值,如下所示:

 <FilesMatch "\.cgi$"> Order Deny,Allow Allow from all </FilesMatch> <FilesMatch "."> # All other files Order Deny,Allow Deny from all </FilesMatch> 

这将默认拒绝所有文件的所有访问。 任何以.cgi结尾的文件都将被允许。 有关更多信息,请参阅Order指令中的文档 。

我试过了我的testing平台,它应该工作。 关键是你需要拒绝所有的访问你想要控制的目录,例如保护

 <Directory "/protected"> Order allow,deny Deny from all </Directory> 

使用此设置,您的受保护文件夹中的所有文件都不可访问。 那么你可以允许CGI访问如下:

 <FilesMatch "\.cgi$"> Order deny,allow Allow from all </FilesMatch> 

你现在应该可以运行任何CGI文件。