2023-04-13 更新 201 阅读

添加强制https访问

申请SSL证书

教程网上挺多的,也没啥特别难操作的地方,启用https必须要拥有一个SSL证书。我是直接免费申请Let's Encrypt的证书。

Typecho程序设置

登录Typecho后台 -> 设置 -> 基本设置 -> 站点地址开头改成https

编辑Typecho站点根目录下的文件config.inc.php加入下面一行配置,否则网站后台还是会调用http资源

/** 开启HTTPS */
define('__TYPECHO_SECURE__',true);

值得注意的是:Chrome内核的浏览器有不安全提示的时候,需要找到主题目录下面的comments.php文件
再将其中的$this->commentUrl(),替换为:echo str_replace("http","https",$this->commentUrl());,最后保存

HTTP重定向到HTTPS

上面步骤完成之后,通过http还是可以访问博客的,可以通过WEB服务器Apache)将80端口http)重定向到443端口https),强制全站https
不过我用的是主机壳的主机,管理面板上提示:

Apache不使用443端口,只能使用判断规则RewriteCond %{HTTP:KERSSL} !on

所以只能按照要求,手动配置服务器的rewrite规则
在网站根目录下上传了.htaccess文件,内容为:

RewriteCond %{HTTP:KERSSL} !on
RewriteCond %{HTTP_USER_AGENT} !MSIE/[1-8]\. [NC]
RewriteCond %{HTTP_HOST} 你的域名
RewriteRule ^.*$ https://你的域名%{REQUEST_URI} [L,R=301]

即可实现强制全局https访问

域名带www跳转至不带www

继续在以上.htaccess文件中添加如下内容

RewriteCond %{http_host} ^你的域名 [NC]
RewriteRule ^(.*)$ http://你的域名/$1 [L,R=301]
注意:若.htaccess文件中另有伪静态规则,需要将以上规则放在伪静态规则的前面

添加伪静态

Typecho后台设置永久链接后,会在域名后加上index.php
我希望去掉index.php。首先也需要手动配置服务器的rewrite规则

配置服务器的rewrite规则


.htacces文件中添加如下代码:

<IfModule mod_rewrite.c>
RewriteEngine On
# 下面是在根目录,文件夹要修改路径
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L]
</IfModule>

后台设置Typecho伪静态

登录Typecho后台 -> 设置 -> 永久链接 -> 是否使用地址重写功能,选择启用(会弹出提示,勾选仍然启用)-> 自定义文章路径,选择wordpress风格 /archives/{slug}.html -> 保存设置


页面底栏添加统计代码

通过使用不蒜子计数器

代码使用


要使用不蒜子必须在页面中引入busuanzi.js,目前最新版如下:

<script async src="https://busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script>

然后在页面html上加上标签即可,可以根据自己的需求加上:

<span id="busuanzi_container_site_pv">
    本站总访问量<span id="busuanzi_value_site_pv"></span>次
</span>

<span id="busuanzi_container_page_pv">
    文章点击次数:<span id="busuanzi_value_page_pv"></span>
</span>
  
<span id="busuanzi_container_site_uv">
    本站浏览量:<span id="busuanzi_value_site_uv"></span>
</span>

不蒜子可以给任何类型的个人站点使用,如果你是用的Typecho,打开themes/你的主题/includes/footer.php相应位置添加上述脚本即可,当然你也可以添加到header.php

参考文章:
LAMP环境下http跳转https、带www跳转至不带www
GitLab + WordPress 使用HTTPS
typecho开启伪静态,去掉那个讨厌的index.php