如何为我的网站启用浏览器缓存?我要把cache-control:public放在header的某个地方吗?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
Cache-Control:public;
>

我正在使用最新版本的PHP开发XAMPP的最新版本。


当前回答

正如我所写的,最好使用.htaccess文件。但是要注意将内容保留在缓存中的时间。

Use:

<FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$">
Header set Cache-Control "max-age=604800, public"
</FilesMatch>

其中:604800 = 7天

PS:这可以用来重置任何头部

其他回答

要在HTML中使用缓存控制,您可以使用元标记,例如。

<meta http-equiv="Cache-control" content="public">

内容字段中的值定义为下面四个值之一。

Cache-Control头的一些信息如下

HTTP 1.1. Allowed values = PUBLIC | PRIVATE | NO-CACHE | NO-STORE. Public - may be cached in public shared caches. Private - may only be cached in private cache. No-Cache - may not be cached. No-Store - may be cached but not archived. The directive CACHE-CONTROL:NO-CACHE indicates cached information should not be used and instead requests should be forwarded to the origin server. This directive has the same semantics as the PRAGMA:NO-CACHE. Clients SHOULD include both PRAGMA: NO-CACHE and CACHE-CONTROL: NO-CACHE when a no-cache request is sent to a server not known to be HTTP/1.1 compliant. Also see EXPIRES. Note: It may be better to specify cache commands in HTTP than in META statements, where they can influence more than the browser, but proxies and other intermediaries that may cache information.

OWASP建议如下:

尽可能确保缓存控制HTTP头设置为无缓存,无存储,必须重新验证,私有;并且pragma HTTP头设置为无缓存。

<IfModule mod_headers.c>
    Header set Cache-Control "private, no-cache, no-store, proxy-revalidate, no-transform"
    Header set Pragma "no-cache"
</IfModule>

http://www.askapache.com/htaccess/apache-speed-cache-control.html上的页面建议使用这样的方法:

添加Cache-Control头 这是你的根。htaccess文件,但如果你有访问 Httpd.conf更好。 这段代码使用FilesMatch指令和Header指令向某些文件添加Cache-Control头文件。 # 480周 < FilesMatch " \。(ico pdf | | flv | jpg | jpeg | png | gif | js | css | swf) $ " > “max-age=290304000, public” < / FilesMatch >

正如我所写的,最好使用.htaccess文件。但是要注意将内容保留在缓存中的时间。

Use:

<FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$">
Header set Cache-Control "max-age=604800, public"
</FilesMatch>

其中:604800 = 7天

PS:这可以用来重置任何头部

对于Apache服务器,您应该检查mod_expires设置Expires和Cache-Control头。

或者,你可以使用Header指令自己添加Cache-Control:

Header set Cache-Control "max-age=290304000, public"