drupal官方技术文章翻译:通过apache .htaccess文件禁用代理缓存

如果您的站点使用了代理缓存技术,那么您网站的访问者就会依靠这个缓存技术来访问您的drupal站点。网页缓存访问在大多数情况,多会发挥它应有的积极作用,加速你网页访问。但有些时候,却会给我们带来一些困扰(如更新显示),,解决这个问题的办法或许只有指示代理服务器不去缓存这些页面。下列是一些缓存代理会给您的drupal站点带来的问题:1、例如您网站的用户添加了一篇文章,但在缓存代理正常工作的情况下使得用户必须等待一段时间才能看到他们添加的文章!这对于网站的管理者和使用者来说是一件非常不愿意见到的事,这个时候我们就会考虑是不是你使用的php虚拟主机的问题?当然不是。

2、用户的认证变得混乱。一个用户通过他自己的账号登陆后,但是当他访问其他页面,代理服务器发送了一个缓存页面,该缓存页面是其他用户登陆后的session缓存。

缓存服务器是可以有很多的技术方法来解决这些问题的。最简单的一个办法是在主<head>区域中的<meta .../>标签中加入缓存控制方法,请点击阅读“如何通过html标签和HTTP headers控制缓存”学习了解。虽然用这种方法是比较方便的,但很多代理缓存服务器是不会对<meta ... />中的说明作出回应的。而在这种情况下,您应该在服务器本身的HTTP headers嵌入缓存控制。而apache服务器通常是用mod_expires模块来控制和发送缓存控制http headers。假设mod_expires在您的apache服务器是已经开启了的,我们试试在.htaccess文件中加入下列命令行来控制代理服务不去缓存您drupal站点的页面。
ExpiresActive onExpiresDefault "access plus 0 seconds"
此外,如果您的apache服务器上同时有mod_expires和mod_headers的话,下列图中的命令行将更加有效果。
ExpiresDefault A0Header set Cache-Control "no-store, no-cache, must-revalidate, max-age=0"Header set Pragma "no-cache"
请注意drupal站点的内部缓存和网络服务器提供的缓存服务器(如squid)是有区别的。关于如何启用页面缓存,请查看“Squid缓存服务器如何在drupal站点中运用”。原文见:http://drupal.org/node/32109 纯Linux环境下高端免备案【香港独立IP地址】 php空间,仅仅只需199元一年起。商务中国域名核心代理直销50元注册国际顶级域名

本文地址:https://www.gaosudu.com/drupal/7818.html