我正在尝试根据特定的x标头/值过滤对某些网络资产(png,gif,jpg,jpeg和mp4文件)的请求,如果请求中不存在该请求,则会失败。
RewriteCond %{HTTP:X-Pull} !secretkey
RewriteRule \.(png|gif|jpg|jpeg|mp4)$ - [F]
如果请求中不包含x-header / secretkey对,则无论这些文件在网站上的完整路径如何,对于这些文件类型,都将引发403 /禁止错误。
我已经尝试了.htaccess文件的多种变体,但是对于* .png,*。gif,*。jpg和* .jpeg文件,仅当这些文件位于网站的根目录中时,它才有效。但是,无论* .mp4文件位于何处,该规则都适用(这对于列表中的所有文件类型都应如此)。
该网站使用mod_pagespeed。
答案 0 :(得分:1)
由于此服务器上部署了Pagespeed,所以用于重写相同资产类型的.htaccess指令不起作用。这是我尝试处理此问题的一种方法(通过更新虚拟主机配置文件):
<IfModule pagespeed_module>
<If "req('X-Pull') != 'secretkey'">
ModPagespeed off
</If>
<Else>
ModPagespeed on
</Else>
...
</IfModule>
由于Pagespeed文档中所述,“由于处理.htaccess文件产生的每请求大量开销”,因此我还将重写内容移至虚拟主机配置文件。