我最近在我的网站上安装了SSL证书,似乎一切正常。除此之外,当我尝试在主页上强制使用SSL时,网站会彻底崩溃。 (就像样式表丢失了,网站变得疯狂!)
这通常发生在firefox中。有人可以帮忙吗?
网站是Verdacci.com
我真的不想在网站上的任何地方强制使用SSL,除了购物车和结帐,但我希望网站能够兼容SSL,如果由于某种原因它是强制的。
我从Firefox获得的错误是关于不安全的内容。我的大部分内容都是从HTTPS开始的,但是一些由Wordpress加载的内容(因此Wordpress应该加载S)似乎打破了网站呢?
答案 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 url
和site 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
,那么它将是协议相对的。
我希望这会有所帮助。