网站主页在强制使用SSL时失去样式

时间:2014-12-31 22:45:52

标签: wordpress firefox ssl https

我最近在我的网站上安装了SSL证书,似乎一切正常。除此之外,当我尝试在主页上强制使用SSL时,网站会彻底崩溃。 (就像样式表丢失了,网站变得疯狂!)

这通常发生在firefox中。有人可以帮忙吗?

网站是Verdacci.com

我真的不想在网站上的任何地方强制使用SSL,除了购物车和结帐,但我希望网站能够兼容SSL,如果由于某种原因它是强制的。

我从Firefox获得的错误是关于不安全的内容。我的大部分内容都是从HTTPS开始的,但是一些由Wordpress加载的内容(因此Wordpress应该加载S)似乎打破了网站呢?

3 个答案:

答案 0 :(得分:0)

听起来你的CSS正在加载http。您是否有理由不希望通过SSL加载整个网站?你可能只会失去大约40毫秒来通过SSL服务它,谷歌现在使用SSL作为排名因素。

但是,如果您只想通过SSL加载某些页面,则可以使用此过滤器:

function so27727003_ssl_pages( $force_ssl, $id = 0 ) {
    // A list of posts that should be SSL
    $ssl_posts = array(1, 12, 19);

    if(in_array($id, $ssl_posts)) {
        $force_ssl = true;
    }

    return $force_ssl;
}
add_filter( 'force_ssl' , 'so27727003_ssl_pages', 10, 3 );

答案 1 :(得分:0)

您可能在WP数据库中的某处有http://

检查WP admin-settings-general中的siteurl,homeurl设置。

应将其更新为https://

您可能还需要更新数据库中的图像路径和链接。 这可以通过备份,然后导出SQL数据库(通过phpMyAdmin)然后执行find / replace命令(http:/ => https://),然后删除数据库表,并导入新数据库来完成。

答案 2 :(得分:0)

首先,从wordpress网站的设置更新home urlsite url。然后转到functions.php罚款并将其添加到顶部

function toz_force_https () {
  if ( !is_ssl() ) {
    wp_redirect('https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 301 );
    exit();
  }
}
add_action ( 'template_redirect', 'toz_force_https', 1 );

现在转到wp-config.php并在<?php

开始后加入以下内容
if ( $_SERVER["HTTP_HOST"] == "yoursite.com" ) {
    define('FORCE_SSL_ADMIN', true);
    define('FORCE_SSL_LOGIN', true);
}

现在转到你自己的.htaccess文件,然后输入:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^yourdomain\.com [NC]
RewriteCond %{SERVER_PORT} !443
RewriteRule (.*) https://www.yourdomain.com/$1 [R=301,L]

在此之后,您的大部分ssl问题都将得到修复,而您仍然可以获得http mixed content issue,这意味着http协议已在您主题的某个链接中进行了硬编码。再次检查您的主题functions.php,然后搜索http://。大多数开发人员不遵循适当的编码规则,因此从而添加基于绝对协议的URL而不是使用相对URL。如果您发现任何类似于http://fonts.google.com/blah-bla的网址//fonts.google.com/blah-bla,那么它将是协议相对的。

我希望这会有所帮助。