是否正确使用 FilesMatch 的正则表达式来阻止访问除少数文件之外的所有文件?

是否正确使用 FilesMatch 的正则表达式来阻止访问除少数文件之外的所有文件?

什么是 Filesmatch 的正确正则表达式,可以阻止访问系统管理员指定的除少数文件之外的所有文件?

这是我得到的最接近单个文件的结果。但不幸的是,该指令允许访问与 相同的目录中的所有文件foo.php

<FilesMatch "^(?!foo\.php)$">    
      deny from all
</FilesMatch>

例如,如果bar.htm上面的指令设置foo.phpwww.mysite.com/bar.htmhttpd.conf

有人可以给我举个例子,说明如何在单个 FilesMatch 指令中阻止访问除以下文件之外的所有文件吗?

  • foo.php
  • 酒吧.htm
  • 其他/somestuff.js

答案1

否认可能更容易一切然后允许您想要的文件。

Order deny, allow
Deny from all
<FilesMatch (foo.php|bar.htm|other/somestuff.js)$>
  Allow from all
<FilesMatch>

相关内容