gpt4 book ai didi

Azure Linux 应用服务上的 WordPress 通过 https

转载 作者:行者123 更新时间:2023-12-02 23:11:50 25 4
gpt4 key购买 nike

我在 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 上的任何地方配置负载均衡器。我希望有人能解释一下这里的网络拓扑。

最佳答案

我遇到了同样的问题,但不是在 Azure 上,而是在我的组织网络内运行的虚拟服务器上。通常有一个负载均衡器来处理来自 Internet 的外部流量。可能存在您尚未配置但由 Azure 控制的负载均衡器。原因是在这种情况下,$_SERVER 数组将您的服务器(运行 WordPress 的服务器)的 IP 地址或 URL 作为 HTTP_HOSTNAME。 WordPress 将此读取为主网站 URL 并将您重定向到它,或加载基于它的样式表(因此没有 https)。

第二个代码块尝试检测 HTTP_X_FORWARDED_SERVER 键是否存在,并将其用作请求可能已由负载均衡器或代理服务器转发的指示符。因此,它将该值与 $_SERVER 上的 HTTP_HOST 键的值交换。

以下是 wp-login.php 中的一个实例,说明 WordPress 如何计算基本 URL:

if ( force_ssl_admin() && ! is_ssl() ) {
if ( 0 === strpos( $_SERVER['REQUEST_URI'], 'http' ) ) {
wp_safe_redirect( set_url_scheme( $_SERVER['REQUEST_URI'], 'https' ) );
exit;
} else {
wp_safe_redirect( 'https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] );
exit;
}

}

关于Azure Linux 应用服务上的 WordPress 通过 https,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50939463/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com