Caching 使用mod_rewrite从常用URL查看缓存版本

Caching 使用mod_rewrite从常用URL查看缓存版本,caching,mod-rewrite,Caching,Mod Rewrite,我的PHP站点生成动态db驱动代码的静态html版本,并将它们存储在名为cache的文件夹中 这意味着当您访问say,/about-us/时,请求通过index.php?page=about-us路由,并生成一个名为/cache/about-us.html的文件 如果该文件存在,PHP将包含它,然后退出。这似乎是在浪费时间,为什么不在请求/about-us/时让apache提供/cache/about-us.html,但前提是它存在 到目前为止,我当前的mod_重写部分只包括以下内容: Rewr

我的PHP站点生成动态db驱动代码的静态html版本,并将它们存储在名为cache的文件夹中

这意味着当您访问say,/about-us/时,请求通过index.php?page=about-us路由,并生成一个名为/cache/about-us.html的文件

如果该文件存在,PHP将包含它,然后退出。这似乎是在浪费时间,为什么不在请求/about-us/时让apache提供/cache/about-us.html,但前提是它存在

到目前为止,我当前的mod_重写部分只包括以下内容:

RewriteRule ^([A-Za-z0-9-_/\.]+)\/$ /?page=$1 [L]

它将任何/foo\u bar/request写入index.php?page=foo\u bar。如果缓存版本存在,我可以在此之前放置什么来请求它?

首先将所有内容发送到/cache/文件夹

RewriteRule ^([A-Za-z0-9-_/\.]+)/$ /cache/$1
然后,检查是否未找到,然后重新路由

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/cache/([A-Za-z0-9-_/\.]+)$ /page?=$1 [L]
根据服务器的设置方式,您可能需要稍微更改路径(我建议使用绝对路径)。还请注意,这也适用于符合重写规则的图像


我不确定您是否会看到任何显著的性能提升—只包含一个静态文件不会花费那么长时间(如果您没有访问数据库)。此外,如果有,您可以将文件缓存在内存中。

首先将所有内容发送到/cache/文件夹

RewriteRule ^([A-Za-z0-9-_/\.]+)/$ /cache/$1
然后,检查是否未找到,然后重新路由

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/cache/([A-Za-z0-9-_/\.]+)$ /page?=$1 [L]
根据服务器的设置方式,您可能需要稍微更改路径(我建议使用绝对路径)。还请注意,这也适用于符合重写规则的图像


我不确定您是否会看到任何显著的性能提升—只包含一个静态文件不会花费那么长时间(如果您没有访问数据库)。此外,如果有,您可以将文件缓存在内存中。

谢谢!这是我想不出的中间路线。有人建议我如何测量每秒的连接数或其他测量方法来确定这是否值得做吗?谢谢!这是我想不出的中间路线。有没有人建议我如何测量每秒的连接数或其他测量方法来确定这是否值得做?