首页 > 解决方案 > htaccess - 拒绝访问文件夹中的 pdf 文件

问题描述

目标是限制对主文件夹中所有 *.pdf 各种子文件夹的直接浏览器访问。每个 pdf 文件所在的子文件夹名称仅为数字(字符 0-9;例如“work/books/112/myfile.pdf”)

到目前为止,我所拥有的是:

RewriteRule ^work/books/([0-9]+)/\.pdf)$ [F,L,NC]

'books' 是我的主文件夹,然后是 pdf 文件所在的任何数字文件夹。

这似乎不起作用,我也不确定虽然这个重写规则会阻止直接访问这些 pdf 文件,但我仍然可以通过 php 读取 pdf 文件吗?

标签: phpregex.htaccessdirectoryfile-type

解决方案


该规则缺少扩展名 ( .pdf) 之前的文件名部分,因此正则表达式应为

^work/books/[0-9]+/[^/]+\.pdf

也不需要捕获任何部分,这意味着您可以省略所有括号,这些括号在您的示例中是不平衡的,顺便说一句。

指令的另一部分RewriteRule是替换,在这种情况下可能只是一个破折号。所以放在一起就变成了

RewriteRule ^work/books/[0-9]+/[^/]+\.pdf$ - [F]

推荐阅读