找不到点(IP地址)的路由,返回404

时间:2017-05-19 15:39:53

标签: php laravel lumen lumen-routing lumen-5.4

我使用Lumen 5.4

这是我的路线设置方式:

$app->get('/ip/{ip}', GeoIpController::class . '@show');

{ip}路由参数应该是一个IP地址,其中包含点。但是,当路线中有点时,似乎存在问题。它返回404未找到的错误。

我知道我可以将IP地址作为简单的GET请求参数传递,但希望IP成为URL的一部分并像路由参数一样处理。

出于测试目的,我使用php -S localhost:8080 -t public来提供应用程序。

1 个答案:

答案 0 :(得分:4)

这是对PHP内置服务器的限制,而不是Lumen(或Laravel,或Slim,或任何其他带路由器的框架/应用程序)。您可以查看PHP bug report here

基本上,如果URL在脚本名称后面的URL中有一个点,则内置服务器会将请求视为静态文件请求,并且它实际上从未尝试在应用程序中运行。

此请求应该可以在真正的Web服务器(apache,nginx)上正常运行,但在PHP的内置开发Web服务器上运行时会失败。