我有一个现有的网站,需要链接到我们网络服务器上的 pdf 文件。问题是,只有通过登录站点进行身份验证的用户才能查看该文件。我已经尝试了所有我能想到的东西,但我只是不知道如何配置 apache 来做我想做的事。要么它允许每个人访问该文件,要么没有人有权访问。
如何设置配置,以便仅授权来自 foo.bar.com 的请求从 blah.baz.com 获取文件?
更新 在我当前拥有的站点的配置文件中
<Directory "/usr/local/web/static/foo">
Order allow,deny
Deny from all
Allow from foo.bar.com
</Directory>
当我在 chrome 控制台中检查失败的请求时,我可以看到它包含
Host:blah.baz.com
Referer:http://foo.bar.com/
我最终使用“Referer”环境变量来检查请求是否来自正确的站点。因此,对于我在上面给出的示例,配置看起来像:
你可以这样做
mod_write
:尝试伪造推荐人:
该文件应通过您的应用程序提供,其中从磁盘读取其内容然后将其传输给用户。但是,由于使用这种方法存在开销,因此现在许多人建议使用 Apache 的 mod_xsendfile。
总而言之,您将需要修改您的应用程序以执行您想要的操作,但使用 mod_xsendfile 可以最大限度地减少需要对代码进行的更改量。
您可以参考以下链接作为指南:https ://codeutopia.net/blog/2009/03/06/sending-files-better-apache-mod_xsendfile-and-php/