Nginx 在 PHP 中传播 server_name 正则表达式

时间:2021-02-12 10:17:50

标签: nginx server-name http-host

在我的 Nginx 配置中有

server_name ~^(?<domain>.*mygreatsite987778.com.invalid)$ ;

效果很好。但是当 PHP 执行 echo $_SERVER['SERVER'] 时,它会看到:

~^(?.*mygreatsite987778.com.invalid)$

尽管看起来很合乎逻辑,但有没有办法获取与正则表达式匹配的服务器名称?服务器变量 HTTP_HOST 包含好值 (stuff.mygreatsite987778.com.invalid)。我想保留 SERVER 变量。

1 个答案:

答案 0 :(得分:0)

这些变量在你的 Nginx 配置文件中定义。您可以将它们设置为您需要的任何值。

您正在查看的变量(在我的系统上称为 SERVER_NAME)正在使用 $server_name 变量的值,但您更愿意使用 $host 的值或 $http_host 值。

这些变量中的大多数都在一个名为 fastcgi_params 的文件中定义,但您可以通过在 include 语句之后放置一个语句来单独覆盖它们。

例如:

include       fastcgi_params;
fastcgi_param SERVER $http_host;
相关问题