一、我的经验
开启https前提是申请和安装SSL证书(百度答案多)
1.修改配置文件(Apache服务器,我从宝塔面板直接修改)
#HTTP_TO_HTTPS_START
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule (.*) https://%{SERVER_NAME}$1 [L,R=301]
</IfModule>
#HTTP_TO_HTTPS_END
%{SERVER_NAME} 这部分修改成域名(如果修改成www.tdrme.cn形式,那么无论访问tdrme.cn或者www.tdrme.cn都会跳转到https://www.tdrme.cn 修改成tdrme.cn也一样的道理)
或者修改 .htaccess 文件(修改服务器配置文件和修改htaccess二选一,我选择修改htaccess)
#这里是301跳转配置,我设置的是从域名.cn 跳转到 www.域名.cn
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^tdrme.cn [NC]
RewriteRule ^(.*)$ https://www.tdrme.cn/$1 [L,R=301]
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.tdrme.cn/$1 [L,R=301]
#这里是typecho伪静态配置
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
2.编辑Typecho站点根目录下的文件。
config.inc.php
在文件最后加入以下内容
/** 开启HTTPS **/ define('__TYPECHO_SECURE__',true);
这两步完成算是基本完成开启https了,但是为了全局https还是要下面的内容
3.为了全局https还要修改评论系统,typecho的评论提交默认http
找到typecho的usr > themes > (自己用的主题文件夹)> comments.php
查找到
$this->commentUrl(),
将其替换为:
echo str_replace("http","https",$this->commentUrl());
这样配置过后,网站就基本实现https 浏览器也有了小绿锁
4.登录Typecho后台 -> 设置 -> 基本设置 -> 站点地址改成https的域名
虚拟服务器不能直接修改服务器配置文件,可以通过在web根目录创建.htaccess文件配置
#HTTP_TO_HTTPS_START
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule (.*) https://tdrme.cn$1 [L,R=301]
</IfModule>
#HTTP_TO_HTTPS_END
tdrme.cn部分是你的域名
二、其他人的教程
感谢陌生老哥,我也是借鉴了他的教程https://www.qmang.online/blog
作者:轻芒_e
链接:https://www.jianshu.com/p/f2302b938ef4
來源:简书
登录Typecho后台 -> 设置 -> 基本设置 -> 站点地址改成https的域名
1.编辑Typecho站点根目录下的文件。
config.inc.php
加入下面一行配置,否则网站后台还是会调用HTTP资源。
登录后台的时候会出现奇怪的错误
/** 开启HTTPS */ define('__TYPECHO_SECURE__',true);
2.由于Chrome浏览器对HTTPS要求较高,Firefox已经显示小绿锁,可是Chrome还是有警告提示,F12查看,评论表单的action地址还是HTTP,找到站点主题目录下的 comments.php 文件,并搜索 $this->commentUrl()
$this->commentUrl() /* 并将其替换为:*/ /* 注意:域名最后不要添加“/”这个字符 */ echo str_replace("http","https",$this->commentUrl());
3.更新文章中引用的附件地址为 HTTPS 地址,执行SQL数据库操作:
UPDATE `typecho_contents` SET `text` = replace (`text`, 'http://qiudy.cc', 'https://qiudy.cc') /* 链接替换为自己的网站 */ /* 这是我的 */ UPDATE `typecho_contents` SET `text` = replace (`text`, 'http://www.qmang.online/blog', 'https://www.qmang.online/blog')
4.但是这样HTTP的方式还是可以访问的,我们可以通过WEB服务器(Ningx)将80端口(HTTPS)重定向到443端口(HTTPS),强制全站HTTPS。如果你使用的了 CDN 的话 在 CDN 加速模式跳转,设置 http 跳转 https。
5.后来发现 typecho 头像是从 gravatar 获取的,但是 typecho 获取头像的地址为 http。所以修改 var/Typecho/Common.php 中的第 937 行。
http://www.gravatar.com /* 修改为 */ https://www.gravatar.com
这就可以了
以上就是教程了,用来解决以后的问题,在此备忘