我使用Lumen 5.4
。
这是我的路线设置方式:
$app->get('/ip/{ip}', GeoIpController::class . '@show');
{ip}
路由参数应该是一个IP地址,其中包含点。但是,当路线中有点时,似乎存在问题。它返回404未找到的错误。
我知道我可以将IP地址作为简单的GET
请求参数传递,但希望IP成为URL的一部分并像路由参数一样处理。
出于测试目的,我使用php -S localhost:8080 -t public
来提供应用程序。
答案 0 :(得分:4)
这是对PHP内置服务器的限制,而不是Lumen(或Laravel,或Slim,或任何其他带路由器的框架/应用程序)。您可以查看PHP bug report here。
基本上,如果URL在脚本名称后面的URL中有一个点,则内置服务器会将请求视为静态文件请求,并且它实际上从未尝试在应用程序中运行。
此请求应该可以在真正的Web服务器(apache,nginx)上正常运行,但在PHP的内置开发Web服务器上运行时会失败。