You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

自定义PHP路由本地正常但部署至Microsoft IIS后失效的问题求助

自定义PHP路由本地正常但部署至Microsoft IIS后失效的问题求助

各位大佬好,我遇到个头疼的问题:我自己写了个没依赖任何现成框架的PHP项目,本来以为部署到Microsoft IIS上是分分钟的事,结果发现本地用PHP内置Web服务器跑起来完全正常的路由逻辑,到IIS上就彻底失效了,折腾好久都没搞定,想请教下有没有人碰到过类似情况?

下面是我的路由函数代码:

function router(string $route, mixed $callback) :bool {
    $url_parts = explode('/', trim($_SERVER['REQUEST_URI'], '/'));
    $requested_route = implode('/', $url_parts);
    $route_regex = preg_replace('/:[^\/]+/', '([^\/]+)', $route);

    if (preg_match("~^$route_regex$~", $requested_route, $matches)) {
        call_user_func_array($callback, array_slice($matches, 1));
        return true;
    }

    return false;
}

这是我调用路由函数的方式(举个示例):

$routeFound = router('', static function() {
    $pagesInstance = new Pages();
    $pagesInstance->login();
});

// 其他路由调用类似:
// $routeFound = router('user/:id', static function($id) {
//     // 处理用户详情逻辑
// });

本地用php -S localhost:8000测试时,不管是根路径还是带参数的路由都能正常匹配,回调函数也能正确执行,但部署到IIS之后,除了根路径偶尔能访问,其他路由要么返回404,要么根本触发不了对应的回调。有没有大佬知道IIS这里需要做什么特殊配置?或者我的路由函数哪里需要针对IIS做调整?

备注:内容来源于stack exchange,提问作者DevelopWithHappiiE

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.16 12:08:17