【问题标题】:Nginx propagate server_name regex inside PhpNginx 在 PHP 中传播 server_name 正则表达式
【发布时间】:2021-05-16 02:14:40
【问题描述】:

在我的 Nginx 配置中有

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

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

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

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

【问题讨论】:

    标签: nginx server-name http-host


    【解决方案1】:

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

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

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

    例如:

    include       fastcgi_params;
    fastcgi_param SERVER $http_host;
    

    【讨论】:

    • 它工作正常。至少当我直接触摸fastcgi.conf 时。当我配置虚拟主机时,其他一切都按预期工作,它根本没有任何效果。即使删除fastcgi.conf 中的行也没有用。所以,我想通过修改虚拟主机来让它工作。
    猜你喜欢
    • 2016-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-21
    • 2018-07-18
    • 2013-03-12
    • 2017-05-05
    • 2021-03-15
    相关资源
    最近更新 更多