Apache缓存请求URL吗?

时间:2012-11-12 19:18:56

标签: php regex apache mod-rewrite

我正坐在这里试图为我的新网站找到解决网址重写问题的方法。它将是一个完全基于AJAX的站点,其中URL在90%的URL中没有重要性。

在Chrome中按F12并转到网络后,我开始监控响应性,因为我更改了.htaccess中的参数。

我发现当输入服务器自重启以来没有看到的地址时,它花了80-100ms来处理请求(等待时间)。这是在localhost上运行的。这在更改GET请求的动态部分时发生了?id = changeThis以及输入新的URL时如/ id / changeThis ..然而,下次需要8-12ms来处理......

如果我使用^(.*)将所有请求重定向到index.php没有影响。

问题:如果我使用^([a-zA-Z\-/]*)(注意没有句号)来使静态文件(如main.css)不被重写,或者最好将所有文件放在静态文件夹中,那么它是否会在更大的范围内产生影响(因此松散的灵活性)仍然使用^(.*)重定向不在静态异常文件夹中的所有请求。 (我在这里想速度。)

问题:任何人都可以批准我的发现吗? Apache是​​否真的“缓存”了请求,因此对特定URL的第一个请求需要时间来处理?

2 个答案:

答案 0 :(得分:1)

从Apache配置中禁用mod_cache。  在我的配置中,它默认启用。

答案 1 :(得分:1)

回答你的问题:

使用较少的子句和更简单的正则表达式处理会更快 - 但我们正在谈论几个ms的顺序。

Apache不会以您的思维方式缓存请求 - 但是,您的Linux系统可能正在缓存文件,因此后续加载速度更快。我认为这就是你所看到/想到的 - apache和网站文件都在页面操作系统中缓存,以便更快地访问。重启会使这些页面变脏并需要重新加载它们。