未找到带点(IP 地址)的路由,returns 404
Route with dot (IP address) not found, returns 404
我用Lumen 5.4
.
我的路线是这样设置的:
$app->get('/ip/{ip}', GeoIpController::class . '@show');
{ip}
路由参数应该是一个IP地址,里面有点。但是,当路线中有点时似乎存在问题。它 returns 404 未找到错误。
我知道我可以将 IP 地址作为简单的 GET
请求参数传递,但希望 IP 成为 URL 的一部分并像路由参数一样处理。
出于测试目的,我使用 php -S localhost:8080 -t public
来为应用程序提供服务。
这是 PHP 内置服务器的限制,不受 Lumen(或 Laravel、Slim 或任何其他 frameworks/apps 路由器的限制。您可以查看 PHP bug report here.
基本上,如果 URL 在脚本名称后的 url 中有一个点,内置服务器会将请求视为静态文件请求,并且它不会真正尝试 运行 通过申请。
这个请求在真实的网络服务器(apache、nginx)上应该可以正常工作,但是当运行在PHP的内置开发网络服务器上时它会失败。
我用Lumen 5.4
.
我的路线是这样设置的:
$app->get('/ip/{ip}', GeoIpController::class . '@show');
{ip}
路由参数应该是一个IP地址,里面有点。但是,当路线中有点时似乎存在问题。它 returns 404 未找到错误。
我知道我可以将 IP 地址作为简单的 GET
请求参数传递,但希望 IP 成为 URL 的一部分并像路由参数一样处理。
出于测试目的,我使用 php -S localhost:8080 -t public
来为应用程序提供服务。
这是 PHP 内置服务器的限制,不受 Lumen(或 Laravel、Slim 或任何其他 frameworks/apps 路由器的限制。您可以查看 PHP bug report here.
基本上,如果 URL 在脚本名称后的 url 中有一个点,内置服务器会将请求视为静态文件请求,并且它不会真正尝试 运行 通过申请。
这个请求在真实的网络服务器(apache、nginx)上应该可以正常工作,但是当运行在PHP的内置开发网络服务器上时它会失败。