【问题标题】:How can proxied image headers be modified on Apache?如何在 Apache 上修改代理图像头?
【发布时间】:2015-07-06 18:12:26
【问题描述】:

我们将图片代理为许可内容,并且需要向代理图片添加 max-age 标头。尝试修改.htaccess,但没有成功,怀疑这是由于代理的图像文件夹不是服务器上的实际目录。

首先在apache2.conf中设置代理:

# Image Proxy
ProxyPass /photo http://photo.licensor.com
ProxyPassReverse /photo http://photo.licensor.com

多次尝试修改站点 public_html 目录下的.htaccess。由于/photo 不是真正的目录,因此 Apache 似乎永远无法识别修改代理图像的 max-age 标头的条件。

我真的很想只针对使用不真实的/photo 目录的代理图像。

【问题讨论】:

  • <Location /photo/> Header unset Etag Header set Cache-Control "max-age=86400, public" Header unset Expires </Location>

标签: php apache .htaccess header mod-proxy


【解决方案1】:

您不能在 htaccess 文件中使用 <location> 容器。最好将它放在您的 apache 服务器配置文件中,靠近您的 ProxyPass 设置:

<LocationMatch "/photo">
  # Image Proxy
  ProxyPass http://photo.licensor.com
  ProxyPassReverse http://photo.licensor.com
  Header unset Etag 
  Header set Cache-Control "max-age=86400, public" 
  Header unset Expires
</LocationMatch>

【讨论】:

  • 在 apache2.conf 中实现您的代码后,我从 apache 收到以下信息:Syntax error on line 57 of /etc/apache2/apache2.conf: ProxyPass|ProxyPassMatch can not have a path when defined in a location. Action 'configtest' failed.
  • @fantisy 抱歉,您需要从ProxyPassProxyPassReverse 行中删除/photo 部分
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-02-05
  • 1970-01-01
  • 2012-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-12
相关资源
最近更新 更多