WordPress登录/SSL=代码问题

时间:2014-10-12 作者:jan

如果有人能从wp登录中解释以下代码,我将不胜感激。php(文件的前几行):

 // Redirect to https login if forced to use SSL
    if ( force_ssl_admin() && ! is_ssl() ) {
        if ( 0 === strpos($_SERVER[\'REQUEST_URI\'], \'http\') ) {
            wp_redirect( set_url_scheme( $_SERVER[\'REQUEST_URI\'], \'https\' ) );
            exit();
        } else {
            wp_redirect( \'https://\' . $_SERVER[\'HTTP_HOST\'] . $_SERVER[\'REQUEST_URI\'] );
            exit();
        }
    }
据我所知,$\\u服务器[RQUEST\\u URI]只能包含绝对路径,如/wordpress/mapage/?foo=巴。为什么要在协议/方案上进行检查?

为什么有两种情况(假/真)它们究竟做了什么。尤其是第一个。第二个是相同的,我会使用https+主机+URI编写函数

谢谢

1 个回复
SO网友:Rarst

这部分代码是在几年前作为整个代码块以及其他一些东西引入的。看见changeset 8069 in trac.

虽然PHP文档中没有明确提及,但显然在特定配置中,值可能是带有协议的完整URL。参见示例$_SERVER[\'REQUEST_URI\'] returns full URL instead of path to script 堆栈溢出问题。

这两种情况是因为形成安全URL的代码不同,这取决于输入中可能存在的差异。

结束

相关推荐

与数据库迁移和SSL链接有关的奇怪问题

我想将我的数据库移动到另一个镜像服务器(用于测试)。我最初使用的是SSL,我正在强制它这样做。当我使用DB迁移插件迁移时,非ssl服务器会断开链接。所有链接都变成了https。我怎样才能解决这个问题?有什么想法吗?