如果etag或请求标头中的最后修改,则htaccess重定向

时间:2013-02-22 16:57:40

标签: php .htaccess mod-rewrite last-modified http-etag

我已经尝试过寻找答案,但找不到任何我能理解的教程或文档,所以我甚至不确定它是否可行,但是;

如果上次修改日期或etag位于请求标头中,我想重定向/重写URL。类似的东西:

RewriteEngine On 
RewriteBase /

RewriteCond # Only if the request uri is 'images/1px.gif'
RewriteCond # And if an etag or last modified date is in the req. header
RewriteRule ^(.*)$  /304-this.php [L]

请注意,即使这不可能,如果不是您认为更好的选择。

为了清楚起见,如果请求是针对images/1px.gif并且有etag或上次修改日期,我也只想要重定向此重定向。

我的理论是,如果图像已经在浏览器缓存中,它将与etag或上次修改日期一起发送,在这种情况下,我希望PHP处理304响应。

全部谢谢!

1 个答案:

答案 0 :(得分:1)

您可以在RewriteCond中使用%{HTTP:...}来测试任何标头

RewriteCond %{HTTP:etag} . [OR]
RewriteCond %{HTTP:last-modified} .
RewriteRule images/1px.gif$ /304-this.php [L]