通过https在Azure Linux应用程序服务上使用Wordpress

通过https在Azure Linux应用程序服务上使用Wordpress,wordpress,azure,nginx,azure-web-app-service,Wordpress,Azure,Nginx,Azure Web App Service,我在Azure Linux应用程序服务上托管WordPress时遇到问题。Wordpress没有意识到我们在使用https。我的所有样式表都是通过http加载的,即使该站点是通过https请求的 我找到了以下页面:和以下代码片段: if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') $_SERVER['HTTPS'] = 'on';

我在Azure Linux应用程序服务上托管WordPress时遇到问题。Wordpress没有意识到我们在使用https。我的所有样式表都是通过http加载的,即使该站点是通过https请求的

我找到了以下页面:和以下代码片段:

if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')
    $_SERVER['HTTPS'] = 'on';
我在github上也遇到了这段代码,它基本上做了相同的事情:

在我的wp-config.php文件中插入此代码后,一切都开始工作

我的问题是,为什么需要这样做?Azure有什么特别的地方需要这样做?GitHub链接引用nginx。据我所知,这是一个负载平衡器,但我还没有在Azure anywhere上配置负载平衡器。我希望有人能解释一下这里的网络地形

if ( array_key_exists( "HTTP_X_FORWARDED_SERVER", $_SERVER ) ) {
    if ( ! empty( $_SERVER['HTTP_X_FORWARDED_PROTO'] ) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https' ) {
       $_SERVER['HTTPS']='on';
    }
    define( "WP_SITEURL", "http://" . $_SERVER["HTTP_X_FORWARDED_SERVER"] );
    define( "WP_HOME", "http://" . $_SERVER["HTTP_X_FORWARDED_SERVER"] );
    $_SERVER['HTTP_HOST'] =  $_SERVER["HTTP_X_FORWARDED_SERVER"];
    $_SERVER['SERVER_NAME'] =  $_SERVER["HTTP_X_FORWARDED_SERVER"];
} else {
    define( "WP_SITEURL", "http://yoursite.azurewebsites.net" );
    define( "WP_HOME", "http://yoursite.azurewebsites.net" );
}