Nginx 在 Php 内传播 server_name 正则表达式
Nginx propagate server_name regex inside Php
在我的 Nginx 配置中有
server_name ~^(?<domain>.*mygreatsite987778.com.invalid)$ ;
效果很好。但是当 Php 执行 echo $_SERVER['SERVER']
时,它会看到:
~^(?.*mygreatsite987778.com.invalid)$
尽管看起来合乎逻辑,但有没有办法获取与正则表达式匹配的服务器名称?服务器变量 HTTP_HOST
包含有效值 (stuff.mygreatsite987778.com.invalid
)。我想保留 SERVER
变量。
这些变量在您的 Nginx 配置文件中定义。您可以将它们设置为您需要的任何值。
您正在查看的变量(在我的系统中称为 SERVER_NAME
)正在使用 $server_name
变量的值,但您更愿意使用 $host
或 $http_host
值。
这些变量中的大部分都在名为 fastcgi_params
的文件中定义,但您可以通过在 include 语句之后放置语句来单独覆盖它们。
例如:
include fastcgi_params;
fastcgi_param SERVER $http_host;
在我的 Nginx 配置中有
server_name ~^(?<domain>.*mygreatsite987778.com.invalid)$ ;
效果很好。但是当 Php 执行 echo $_SERVER['SERVER']
时,它会看到:
~^(?.*mygreatsite987778.com.invalid)$
尽管看起来合乎逻辑,但有没有办法获取与正则表达式匹配的服务器名称?服务器变量 HTTP_HOST
包含有效值 (stuff.mygreatsite987778.com.invalid
)。我想保留 SERVER
变量。
这些变量在您的 Nginx 配置文件中定义。您可以将它们设置为您需要的任何值。
您正在查看的变量(在我的系统中称为 SERVER_NAME
)正在使用 $server_name
变量的值,但您更愿意使用 $host
或 $http_host
值。
这些变量中的大部分都在名为 fastcgi_params
的文件中定义,但您可以通过在 include 语句之后放置语句来单独覆盖它们。
例如:
include fastcgi_params;
fastcgi_param SERVER $http_host;