【问题标题】:Is it possible to return a HTTP request to apache after php processing?php处理后是否可以向apache返回HTTP请求?
【发布时间】:2015-06-05 16:51:41
【问题描述】:

我想做的是:

  1. 用户对静态文件(例如 HTML5 音频的图像或 mp3 文件)发起 HTTP GET 请求
  2. PHP 脚本拦截这些请求(例如通过 mod_rewrite)并检查 cookie 的有效身份验证
  3. 如果成功,则将文件传递给用户,否则用户会收到 401

现在,如果 PHP 脚本可以“通过”成功的请求并将控制权返回给 Apache,那将是完美且最简单的,这样 Apache 就可以像原始请求一样交付文件。由于我们也有缓存并且需要传递音频文件(包括分块请求),这将使 php 脚本免于手动创建响应头等。

这可能吗?

如果不是,那么实现这一点的最简单、最简单的解决方案是什么,以便音频文件的缓存和(分块)请求仍然按预期工作?

【问题讨论】:

  • 听起来你想使用 AJAX。
  • 或者您想使用身份验证类来处理文件
  • 不,请不要使用 AJAX。特别是对于音频文件,我不想使用该路线。从客户端的角度来看,应该是简单的“普通”请求,即使用 以及

标签: php apache http


【解决方案1】:

我想你想要的是X-Sendfile

确实,您可以使用 mod_rewrite 让 PHP 处理任何 mime 文件,然后通过 X-Sendfile 标头返回错误或所需文件(请注意,您必须在 apache 中激活同名模块)。

虽然没有测试。这似乎是一个非常重要的问题。例如,OwnCloud 仍然使用 PHP 来提供文件...

【讨论】:

  • 是的,这可能是我正在寻找的解决方案,因为这个模组似乎支持缓存控制以及远程请求。好的,但它也安全吗?当然只有 php 脚本应该能够启动它,并且不应该可以远程启动它。那我们还有什么需要注意的吗?
  • 我不认为 x-sendfile 模块是为服务器端脚本语言而设计的。因此,安全性仅在于您:您编码和管理服务器的方式。然而,这个项目已经更新了好几年了,我认为你调查一下是明智的……但请放心:根据谷歌的说法,这个 mod 似乎不是一个众所周知的安全漏洞。跨度>
  • 非常感谢桂东!这应该会有所帮助。
猜你喜欢
  • 2014-03-25
  • 1970-01-01
  • 2014-01-05
  • 1970-01-01
  • 2016-08-19
  • 2012-08-26
  • 2020-04-18
  • 1970-01-01
  • 2011-04-24
相关资源
最近更新 更多