我们的网站./content/
上有一个目录,其中包含一堆子目录,每个子目录都包含自己的子目录等。在这些子目录中,还有很多我们需要的.PDF文档防止某人直接访问,例如直接访问example.com/content/myfile.pdf。
我们在整个站点中引用了文件并通过Mozilla的PDF.js库加载,因此,显然,我们需要能够让我们的PHP / HTML / JS文件能够访问它们,但仅限于我们的域。
我尝试在域根目录和内容文件夹中创建.htaccess文件以限制访问,但我仍然可以直接访问它们。这是.htaccess内容:
<IfModule mod_rewrite.c>
RewriteCond %{HTTP_HOST} ^example\.com$
RewriteRule ^$ https://www.example.com/* [R=301,L]
RewriteCond %{HTTP_REFERER} !^http://(www\.)?example\.com/ [NC]
RewriteRule ^_content/[^.]+\.(jpe?g|gif|bmp|png|pdf)$ - [F,NC]
</IfModule>
提前致谢。
答案 0 :(得分:-1)
根据Farkie推荐的帖子进行一些修改后,这最终为我工作(因为我们想限制http和https,因此我们需要额外的HTTP_REFERER for https)。
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^https://(www\.)?example.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://(www\.)?example.com/.*$ [NC]
RewriteRule .*\.(pdf)$ - [F,NC]