我正坐在这里试图为我的新网站找到解决网址重写问题的方法。它将是一个完全基于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的第一个请求需要时间来处理?
答案 0 :(得分:1)
从Apache配置中禁用mod_cache。 在我的配置中,它默认启用。
答案 1 :(得分:1)
回答你的问题:
使用较少的子句和更简单的正则表达式处理会更快 - 但我们正在谈论几个ms的顺序。
Apache不会以您的思维方式缓存请求 - 但是,您的Linux系统可能正在缓存文件,因此后续加载速度更快。我认为这就是你所看到/想到的 - apache和网站文件都在页面操作系统中缓存,以便更快地访问。重启会使这些页面变脏并需要重新加载它们。