通过https在Azure Linux应用服务上的Wordpress

时间:2018-06-20 02:45:05

标签: wordpress azure nginx azure-web-sites

我遇到了在Azure Linux应用服务上托管WordPress的问题。 WordPress并没有意识到我们已经超过了https。我的所有样式表都通过http加载,即使该网站是通过https请求的。

我找到了以下页面:https://codex.wordpress.org/Function_Reference/is_ssl和以下代码段:

if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')
    $_SERVER['HTTPS'] = 'on';

我也在github上遇到了基本执行相同操作的代码:

https://gist.github.com/buchizo/1b619c5461295822f0c45e666ba716bf

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" );
}

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

我的问题是这个,为什么要这样做? Azure需要它有什么特别之处? GitHub链接引用了nginx。据我了解,这是一个负载平衡器,但我尚未在Azure上的任何地方配置负载平衡器。我希望有人在这里解释游戏中的网络拓扑。

0 个答案:

没有答案