Nginx服务器,宝塔面板
宝塔开启强制https,很容易。
另外设置伪静态
以下两种伪静态设置方法,第一个是官方给的try_files伪静态方法推荐使用
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
----------------------------------------------------------------------
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php$1 last;
}
Apache服务器,宝塔面板
后来发现有个简单方法,不进行以下设置,宝塔直接开启强制https,然后按下面的方法修改typecho的config.inc.php文件。这就可以了,如果使用强制https请不要修改服务器配置,剩下的就是按照网上填 .htaccess 伪静态规则了。
一、我的经验
开启 https 前提是申请和安装 SSL 证书(百度答案多)
或者修改 .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
这就可以了
以上就是教程了,用来解决以后的问题,在此备忘