如果直接定位,则限制对文件的访问

Restrict access to files if targeted directly

我的基本文件夹结构如下:

index.php
assets/
  docs/
    document.pdf
includes/
  script.php

如果有人试图直接获取文档,我需要能够阻止对文档的访问,例如:www.domain.com/assets/docs/document.pdf 但如果要从 index.php 页面链接,则允许访问.

有没有办法像这样阻止访问,或者有没有办法在页面上嵌入 pdf 文件?如果也可以通过 PHP 或 jQuery 来完成,我愿意使用。

我尝试过的一些方法包括 htaccess 中的拒绝限制,但显然完全阻止了它。

提前致谢。

您可以直接在 Apache 配置中使用 Referer header(assets/docs/.htaccess 文件即可):

SetEnvIf Referer "domain\.com" is_local_referer
<FilesMatch "\.pdf$">
    Require env is_local_referer
</FilesMatch>