【发布时间】:2021-08-20 02:23:26
【问题描述】:
我有一个 .htaccess 文件,我想拒绝来自所有 DIR 的访问,除了 /docs/ 中称为 r20 或 r21 的文件夹,我希望在将来添加更多 DIR从 r 开始。我可以使用什么正则表达式?谢谢。
RewriteEngine On
<DirectoryMatch "^/docs/r">
Order deny,allow
Deny from all
</DirectoryMatch>
【问题讨论】:
-
你不能在.htaccess中使用
DirectoryMatch,该指令的上下文是server config, virtual host。 -
好吧,不知道,从这篇文章中得到它:stackoverflow.com/questions/1057744/… 我查看的另一个选项是
Order Allow,Deny <FilesMatch "^/docs/r"> Allow from all </FilesMatch>但我不确定这是否更好。跨度> -
我不确定您是否可以将 paths 与
FilesMatch一起使用,文档明确使用了术语“文件名”。您可能还可以使用 RewriteCond 和 RewriteRule 的组合来执行此操作,条件将检查请求 URI 是否 not 以/docs/r开头,并且规则将匹配以 @987654331 开头的所有路径@,然后简单地为 Forbidden 应用F标志。