如何使用htaccess绕过旧的缓存文件

时间:2015-02-22 15:52:02

标签: apache .htaccess mod-rewrite caching

我在LAMP环境中创建了 .htaccess 来缓存动态文件,它在我的项目中运行良好。它可以绕过某些特定网址(内容,管理员,API等)和POST方法的缓存。

DirectoryIndex index.php
Options All -Indexes
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_URI} ^.*$
RewriteCond %{REQUEST_URI} !^/content|/admin|/accounts|/api$
RewriteCond %{REQUEST_URI} !^.*//.*$
RewriteCond %{REQUEST_METHOD} !POST
RewriteCond %{HTTP_COOKIE} !^.*mycookiename.*$ [NC]
RewriteCond %{QUERY_STRING} !.*=.*
RewriteCond %{DOCUMENT_ROOT}/content/cache/$1.html -f
RewriteRule ^(.*)$ "/content/cache/$1.html" [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [L]

我想添加另一个功能。如果缓存文件早于所需时间(例如,如果超过1小时,则绕过缓存文件示例),我想绕过此规则(缓存规则)。

如何从.htaccess检查文件修改时间并使用上述规则中的信息来绕过缓存?

使用file_exists,filemtime和file_get_contents在PHP中这个任务很容易,但是如果可能的话我还想绕过PHP来获取缓存方法:(

0 个答案:

没有答案