SSL固定内容,为什么不在https方案中返回site_url()

时间:2017-07-22 14:05:06

标签: php wordpress .htaccess ssl mixed-content

在我的WordPress网站中,我在子文件夹中使用了另一个WordPress,例如:https://www.mywpexample.com/wp-newsite

我已为我的网站完成了SSL,但突然显示控制台混合内容https未加载错误,并且未在网站https://www.mywpexample.com/wp-newsite中加载任何资产( css / js / actions )。

我已尝试echo site_url()返回http://www.mywpexample.com/wp-newsite,但在数据库和wordpress常规设置中我已经:

  

WordPress地址(URL) - > https://www.mywpexample.com/wp-newsite

     

网站地址(URL) - > https://www.mywpexample.com/wp-newsite

在wp-config文件中:

define('WP_SITEURL', 'https://www.mywpexample.com/wp-newsite' );
define('WP_HOME', 'https://www.mywpexample.com/wp-newsite' );
define('ABSOLUTE_URL', 'www.mywpexample.com/wp-newsite');

如果尝试添加SSL选项,例如wp-config:

define('FORCE_SSL_ADMIN', true);
define('FORCE_SSL', true)
define('FORCE_SSL_LOGIN', true)

网站破坏后,浏览器显示TOO_MANY_REDIRECTS的错误。 现在,我已经有了这个解决方案,用于前端替换所有的http - >到根index.php

中的https ..
<?php
ob_start();
/**
 * Front to the WordPress application. This file doesn't do anything, but loads
 * wp-blog-header.php which does and tells WordPress to load the theme.
 *
 * @package WordPress
 */

/**
 * Tells WordPress to load the WordPress theme and output it.
 *
 * @var bool
 */
define('WP_USE_THEMES', true);

/** Loads the WordPress Environment and Template */
require( dirname( __FILE__ ) . '/wp-blog-header.php' );

//and these lines also 
$output = ob_get_contents();
ob_end_clean();

$output = str_replace(array("https://", "http://"), "//", $output);
echo str_replace('http:\/\/', "\/\/", $output);

但需要一个更好的解决方案,适用于所有环境( wp-admin,wp-login和前端)。

1 个答案:

答案 0 :(得分:0)

嘿Guy's如果你去同样的问题。 &#34;混合内容阻止&#34;

请使用以下plugin

如果使用ngnix服务器,则根据您的服务器建议更改插件设置。enter image description here