我知道可以通过指令来限制对目录的访问allow from ip.ip.ip.ip
。
但是我遇到了一个稍微不同的问题:有一个目录,其中只包含 pdf 文件。我想限制对这些文件的访问:- 当您尝试通过在浏览器中键入链接来显示这些 pdf 文件时,例如http://domain/pdf_path/pdf1.pdf
调用应该失败。- 但是,如果用户通过单击 中的链接(http://domain/
例如来自源文件)来打开文件http://domain/index.php
,则应该显示 pdf 文件。
有没有办法在 .htaccess(而不是 http.conf)中实现这一点?
答案1
您可以检查HTTP 引用者标头中.htaccess
。引荐来源指示链接到正在获取的资源的网页地址 - 因此您可以检查引荐来源是否指向正确域上的页面。
有关详细信息,请参见以下问题:控制 apache referrer 以限制 htaccess 文件中的下载
警告:
如果人们知道您正在检查的域名,则很容易规避这种情况。大多数浏览器和下载工具都允许直接设置 referer,因此如果您知道只http://foo.example/
允许指向 的 referer,则只需将 referer 设置为http://foo.example/blah
,访问检查就不会阻止您。
如果您想要严密的安全性,唯一明智的选择可能是适当的身份验证(通过用户名/密码或通过证书),结合仅使用 HTTPS 的网站。