gpt4 book ai didi

php - 使用 htaccess 和 modrewrite 将整个 php 输出缓存到静态 html

转载 作者:可可西里 更新时间:2023-10-31 23:03:30 24 4
gpt4 key购买 nike

我有一个 Php 网站,它的某些页面已经创建了一个完整的输出缓存文件,但没有保存为 .html 并且请求仍然从 Php 发送,它错过了托管缓存对于具有非常好的性能的静态文件。

缓存文件根据它们的md5(Url)保存在一个目录中。

我想知道使用 mod_rewrite 是否有可能获得类似的结果,但是使用 html 静态文件,我想我以前在 WordPress 缓存插件中看到过类似的结果(但当时我没太注意)。

我可以使用什么来代替 md5()mod_rewrite 将整个 Url 转换为有效的唯一文件名?

我的 Url 是虚拟路由,非常简单:/level1/level2/level3/(工作仍在进行中,但我不认为使用超过 3 个级别,levelN 显然是一个例子,可以是任何单词)

为了简化我想要的是:

mod_rewrite:/cache/unique(Url).html 存在吗?加载它

php:/cache/unique(Url).html 不存在?创建它

unique 我可以使用什么?

最佳答案

是的,你可以这样做,我不会提供整个代码,只是想法就足够了。

让我们从.htaccess
开始以一种将每个丢失的文件重定向到目录索引的方式编写 .htaccess。它可能看起来像这样

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [QSA,L]

现在如果没有找到被调用的页面,你将得到对 index.php 的请求。

与其使用散列文件名,不如使用目录结构,这样会更快,更易读。

您可以即时创建目录。

index.php
在将数据推送回浏览器之前,请确保将其全部保存在一个变量中。您可以使用 include 函数来做到这一点。请参阅 this page 上的示例 5 .

根据您的目录级别保存数据。

$levels = explode('/',<REQUESTED_URI>);
$filename = array_pop($levels);
foreach($levels as $level)
// Create Directory if does not exit

最后,这只是基本想法,您必须自己想出一些技巧和窍门。

关于php - 使用 htaccess 和 modrewrite 将整个 php 输出缓存到静态 html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32334290/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com