【发布时间】:2021-12-19 02:07:15
【问题描述】:
如果我通过 SSH 连接到运行 laravel 应用程序的服务器并在 tinker 命令行中运行:
print_r(request()->getHttpHost());
这告诉我服务器的域名。但它怎么知道?这些信息存储在哪里。它查询什么来获取此信息。为什么它不返回“localhost”或类似的东西。
【问题讨论】:
标签: php laravel http hostname tinker
如果我通过 SSH 连接到运行 laravel 应用程序的服务器并在 tinker 命令行中运行:
print_r(request()->getHttpHost());
这告诉我服务器的域名。但它怎么知道?这些信息存储在哪里。它查询什么来获取此信息。为什么它不返回“localhost”或类似的东西。
【问题讨论】:
标签: php laravel http hostname tinker
Laravel 将首先查看 X_FORWARDED_HOST HTTP 标头。如果此标头不可用,它将查看HOST HTTP 标头。
如果这些标头都不可用(即使用命令行时),它将查看SERVER_NAME 配置变量。最后,如果服务器名称也不可用,它将返回 SERVER_ADDR 配置变量的值。
您可以阅读Request::getHttpHosthere的来源。
【讨论】: