如何使用ModRewrite检查缓存文件是否存在,如果存在,则重写缓存文件,否则重写为动态文件.
例如,我有以下文件夹结构:
pages.php cache/ pages/ 1.html 2.html textToo.html etc.
你如何为此设置RewriteRules,所以请求可以像这样发送:
example.com/pages/1
如果缓存文件存在,则重写缓存文件,如果缓存文件不存在,则重写为pages.php?p = 1
它应该是这样的:(请注意,这不起作用,否则我不会问这个)
RewriteRule ^pages/([^/\.]+) cache/pages/$1.html [NC,QSA]
RewriteCond %{REQUEST_FILENAME} -f [NC,OR]
RewriteCond %{REQUEST_FILENAME} -d [NC]
RewriteRule cache/pages/([^/\.]+).html pages.php?p=$1 [NC,QSA,L]
我可以使用PHP来粗略地做这个,但我认为必须使用mod_rewrite.
为PHP站点实现缓存的最佳方法是什么?显然,有一些东西不应该被缓存(例如搜索查询),但我想找到一个好的解决方案,以确保我避免'挖掘效果'.
我知道有WordPress的WP-Cache,但我正在编写一个不是基于WP构建的自定义解决方案.我有兴趣编写自己的缓存(如果它足够简单),或者你可以指向一个漂亮,轻量级的框架.我不太了解Apache,所以如果它是一个PHP框架那么它会更合适.
谢谢.