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