1

我坐在这里试图为我的新网站找到一种解决 URL 重写的方法。这将是一个完全基于 AJAX 的站点,其中 URL 在 90% 的 URL 中不重要。

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

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

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

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

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

4

2 回答 2

1

要回答您的问题:

使用更少的子句和更简单的正则表达式,处理速度会更快 - 但我们正在谈论几毫秒的数量级。

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

于 2012-11-12T21:17:03.293 回答
1

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

于 2012-11-12T19:25:04.957 回答