我有一个奇怪的问题,我一生都无法弄清楚。首先,我从头开发了一个 PHP MVC 框架。我遇到的问题是在 exit() 调用之后我得到了一个标头重定向执行。
这是路由过程的高级视图:
- REQUEST_URI 被剥离,请求的控制器、方法和任何参数都设置为稍后在脚本中使用的变量。
- router.php 检查以确保请求的控制器是否确实存在,如果不存在则返回 false,但如果一切都检查,则返回 true
- 如果它返回 true,它将执行请求的控制器、方法和任何参数。
- 如果它返回 false,那么路由器将发送重定向到自定义 404 页面。这使用了 PHP 的 header() 函数,并且在 header("Location: *"); 之后有一个 exit();
第 4 步是问题发生的地方。请求的控制器存在,因此它执行并且请求的视图存在,因此它正确加载了所有内容,但是即使在成功加载视图后调用了 exit(),它也会执行重定向。
路由器是否有任何理由继续启动并触发重定向?