PHP$_服务器[';主机名';]返回带有AWS ELB+;EC2

PHP$_服务器[';主机名';]返回带有AWS ELB+;EC2,php,joomla,amazon-web-services,amazon-ec2,amazon-elb,Php,Joomla,Amazon Web Services,Amazon Ec2,Amazon Elb,我正在使用AWS CloudFront->ELB->2 x EC2实例,我已将我的域www.mydomain.net指向CF的域。CF将缓存ELB的返回。ELB连接到2个EC2实例(Web1和Web2) 我有一个PHP脚本,它使用$\u SERVER['HOST\u NAME'],但它不返回www.mydomain.net,而是返回ELB域名 如何将其设置为返回www.mydomain.net?在wordpress多站点安装中遇到类似问题。 我在修复的wp配置中有一个很小的“如果”条件: if(

我正在使用AWS CloudFront->ELB->2 x EC2实例,我已将我的域www.mydomain.net指向CF的域。CF将缓存ELB的返回。ELB连接到2个EC2实例(Web1和Web2)

我有一个PHP脚本,它使用
$\u SERVER['HOST\u NAME']
,但它不返回
www.mydomain.net
,而是返回ELB域名


如何将其设置为返回www.mydomain.net?

在wordpress多站点安装中遇到类似问题。 我在修复的wp配置中有一个很小的“如果”条件:

if(isset($_SERVER['HTTP_X_FORWARDED_HOST'])) {  
        $list = explode(',',$_SERVER['HTTP_X_FORWARDED_HOST']);
        $_SERVER['HTTP_HOST'] = $list[0];
        $_SERVER['SERVER_NAME']=$list[0];
  }

在CloudFront中,您需要将“主机”头转发到源站(将“主机”头列入白名单)。默认情况下,“CloudFront将值设置为与请求对象关联的源站的域名”~。

您不想自己设置
$\u SERVER['HOST\u name']
而只是从中读取,只是查找不同的主机名吗?像这样?我的站点正在运行Joomla,这非常取决于$\u SERVER['HOST\u NAME']值。我希望该值返回“www.mydomain.net”,但它现在是elb域。在引导过程中,您可以将
$\u SERVER['HOST\u NAME']
设置为您喜欢的任何值。Joomla将使用它。您可能需要在configuration.php中设置live_site变量。