【问题标题】:Is it possible to return a 304 Not Modified with .htaccess是否可以使用 .htaccess 返回 304 Not Modified
【发布时间】:2011-12-21 20:30:47
【问题描述】:

如果用户在其浏览器中缓存了一个文件,并且他们发送了一个带有 If-Modified-Since 标头的 http 请求,有没有办法使用 .htaccess 自动为他们提供 304 Not Modified 响应?

【问题讨论】:

    标签: .htaccess caching http-headers http-status-code-304


    【解决方案1】:

    间接解决方案:

    .htaccess:

    RewriteCond %{HTTP:if-modified-since} .
    RewriteRule . /not_modified.php [L]
    

    not_modified.php:

    header($_SERVER['SERVER_PROTOCOL'].' 304 Not Modified');
    

    【讨论】:

      【解决方案2】:

      查看以下链接:

      1. http://httpd.apache.org/docs/2.1/caching.html
      2. http://www.chicagostyleseo.com/2010/04/googles-need-for-speed-use-cache-and-htaccess-to-speed-up-your-site/
      3. http://www.askapache.com/htaccess/apache-speed-last-modified.html

      注意,从上面的链接:

      如果您删除 Last-Modified 和 ETag 标头,您将完全 消除 If-Modified-Since 和 If-None-Match 请求及其 304 未修改响应,因此文件将保持缓存而不检查 更新直到 Expires 标头指示新内容 可用!

      【讨论】:

      • 如果我错了,请纠正我,但似乎只需单击浏览器上的“刷新”按钮就会触发 If-modified-since 请求,而不管过期标头如何。
      • @skibulk - 是的,我认为这部分是特定于浏览器的。我也认为上面的链接中提到了。
      • 我认为过期优先。所以浏览器会一直使用缓存的版本直到它过期,然后使用 IfModifiedSince,如果它仍然没有改变,防止重复下载
      猜你喜欢
      • 2023-02-12
      • 1970-01-01
      • 2012-08-28
      • 2020-04-17
      • 2014-01-25
      • 2012-08-04
      • 2014-07-22
      • 1970-01-01
      • 2013-12-22
      相关资源
      最近更新 更多