从站点URL中删除HTTP:并只保留//

时间:2016-07-14 作者:Animish Andraskar

我正在为我的公司建立一个网站,在公司内部通过HTTP加载,在公司网络外部通过HTTPS加载。这是一种强迫,我们无法避免。该站点需要同时使用HTTP和HTTPS。

这是混合的HTTP&;HTTPS给我们带来了一个巨大的问题。我尝试使用使URL相对的插件。但有些URL仍然是绝对的,并且管理面板无法通过HTTPS正确打开。

是否有任何黑客可以使用它从站点URL中删除HTTP,并且只有两个斜杠(//)?这将解决我们的问题,至少对于前端来说是这样。

提前谢谢。非常感谢您的帮助。

1 个回复
最合适的回答,由SO网友:Ethan O\'Sullivan 整理而成

删除http:https: 从所有链接中,使用以下脚本:

add_action( \'plugins_loaded\', \'wpse_232287_init\' );

function wpse_232287_init() { // Initiate the function
    ob_start( \'wpse_232287_remove_http\' );
}

function wpse_232287_remove_http( $buffer ) {
    // Check for a Content-Type header, only apply rewriting to "text/html" or undefined
    $headers = headers_list();
    $content_type = null;

    foreach ( $headers as $header ) {
        if (strpos( strtolower( $header ), \'content-type:\' ) === 0 ) {
            $pieces = explode( \':\', strtolower( $header ) );
            $content_type = trim( $pieces[1] );
            break;
        }
    }

    if ( is_null( $content_type ) || substr( $content_type, 0, 9 ) === \'text/html\' ) { // Replace \'href\'/\'src\' attributes within script/link/base/img tags with \'//\'
        $return = preg_replace( "/(<(script|link|base|img|form)([^>]*)(href|src|action)=[\\"\'])https?:\\\\/\\\\//i", "$1//", $buffer );
        if ( $return ) { // On regex error, skip overwriting content
            $buffer = $return;
        }
    }
    return $buffer;
}

相关推荐

WordPress网站损坏,链接失效,无法访问wp-admin页面

我刚刚收到一个坏掉的Wordpress网站,我现在负责管理这个网站。编辑:自从发布这篇文章以来,我对自己的问题有了一些新的发现。当尝试访问Wordpress管理页面(通过单击登录仪表板的链接)时,我得到一个404未找到页面。此404错误页面与所托管网站上的所有其他页面具有相同的品牌(背景和样式)。我猜我的链接断了。网站上的身份验证页面不起作用,我无法访问前面所述的管理门户。我有权访问根目录和wp content文件夹。该页面由wordpress托管,我通过启用sftp访问root。我还可以访问phpMyA