在包含origin()方法的laravel 13.42.0中,可用illuminate\support\uri::of($url)->origin()提取url来源,结果由协议、主机和需要保留的端口组成,不包含路径、查询参数与片段。相对地址和mailto等没有普通来源的uri会返回null,使用前应明确如何处理。
先确认框架版本
composer show laravel/framework
以下示例针对Laravel 13.42.0标签中的Uri实现。若项目锁定较旧版本,应先核对该方法是否存在;需要升级时按项目依赖约束更新并运行现有测试,不直接替换生产环境依赖。

Laravel官方文档对Fluent URI对象的介绍
提取来源或分别读取组成部分
use Illuminate\Support\Uri;
$uri = Uri::of('https://example.com:8443/docs?page=2#start');
$origin = $uri->origin();
// https://example.com:8443
$scheme = $uri->scheme(); // https
$host = $uri->host(); // example.com
$port = $uri->port(); // 8443需要一个完整来源字符串时使用origin();只需要某个字段时分别读取scheme()、host()或port()。显式非默认端口会保留,默认端口可能由底层URI规范化逻辑省略,不宜用字符串拼接结果代替来源语义。
Laravel Cloud(cloud.laravel.com)。此技能用于处理所有 Laravel Cloud 请求,包括搜索和读取数据。只要任务涉及 Laravel Cloud,即使用此技能。

Laravel 13.42.0中Uri::origin的实际源码
处理没有来源的地址
$origin = Uri::of('/docs?page=2')->origin();
if ($origin === null) {
// 按业务需要拒绝相对地址,或先以可信基础URL解析。
}origin()不会替相对地址猜测站点域名,也不负责证明目标可信。若用于跳转或外部请求,应另按业务规则验证允许的协议与主机;解析出来源本身不等于通过权限或安全校验。

















