让PHP处理所有HTTP请求会影响性能吗?


Is having PHP handle all HTTP requests bad for performance?

单个PHP文件处理所有HTTP请求的资源消耗与Apache仅提供资产的正常设置(例如,在图像的情况下)相比是什么?

PHP文件将只做出一个决定。资产位于这里吗?如果没有,则提供默认资产。因此,它实际上只对每个HTTP请求运行file_exists。

我想我不明白每次PHP需要做一些处理时到底发生了什么。服务器是否每次都只处理那一小段代码?或者服务器是否在需要PHP的任何时候都启动一大堆进程,而不是通常提供一个图像。

既然你是在执行一个脚本,那么它肯定不如使用Apache内置的一些方法,例如ModRewrite

您可以使用以下.htaccess文件轻松地重定向不存在的任何:

RewriteCond %{REQUEST_FILENAME} !-d [OR]
RewriteCond %{REQUEST_FILENAME} !-f [OR]
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule (.*) my-script.php

Apache将因此提供相关的资产,如果它存在于请求的URI,或者将用户/浏览器/源重定向到my-script.php,如果它不存在。