Typecho博客页添加备案信息
Typecho博客部署与微信访问问题解决全记录
一、域名配置与微信浏览器访问问题
1.1 问题描述
在微信中点击自己的博客域名链接时,出现“已停止访问该网页”的红色拦截提示,域名被微信封禁。
1.2 原因分析
对于个人博客,微信红色拦截的常见原因包括:
- 域名历史问题:域名曾被他人用于违规内容,被微信列入黑名单
- 网站缺少安全资质:未完成ICP备案,或未配置有效的SSL证书(HTTPS)
- 服务器IP被连坐:同服务器其他站点违规导致IP被微信屏蔽
1.3 解决方案
第一步:完善网站合规资质
- 完成域名ICP备案
- 为域名配置有效的SSL证书,强制启用HTTPS
- 检查网站内容,确保无诱导分享、虚假广告、恶意跳转等违规内容
第二步:通过官方渠道申诉
- 访问腾讯安全网址安全中心:https://urlsec.qq.com/complain.html
- 准备申诉材料:域名所有权证明、ICP备案信息截图、网站内容及整改说明
- 提交申诉申请
第三步:配置微信验证文件
按照微信申诉流程要求,在网站根目录放置指定的验证文件(如 2d695757040021118c75b00ae3fa95b7.txt),确保可通过 https://域名/验证文件名.txt 正常访问。
二、Typecho备案号添加方法
2.1 修改 functions.php 文件
文件位置:/usr/themes/主题名称/functions.php
在 themeConfig($form) 函数中添加备案号配置项:
<?php
if (!defined('__TYPECHO_ROOT_DIR__')) exit;
function themeConfig($form)
{
// 原有配置项...
$logoUrl = new \Typecho\Widget\Helper\Form\Element\Text(
'logoUrl',
null,
null,
_t('站点 LOGO 地址'),
_t('在这里填入一个图片 URL 地址, 以在网站标题前加上一个 LOGO')
);
$form->addInput($logoUrl->addRule('url', _t('请填写一个合法的URL地址')));
// 新增:备案号配置项
$icp = new \Typecho\Widget\Helper\Form\Element\Text(
'icp',
null,
null,
_t('网站备案号'),
_t('请输入你的备案号,例如:京ICP备12345678号-1')
);
$form->addInput($icp);
// 原有侧边栏配置...
$sidebarBlock = new \Typecho\Widget\Helper\Form\Element\Checkbox(
'sidebarBlock',
[
'ShowRecentPosts' => _t('显示最新文章'),
'ShowRecentComments' => _t('显示最近回复'),
'ShowCategory' => _t('显示分类'),
'ShowArchive' => _t('显示归档'),
'ShowOther' => _t('显示其它杂项')
],
['ShowRecentPosts', 'ShowRecentComments', 'ShowCategory', 'ShowArchive', 'ShowOther'],
_t('侧边栏显示')
);
$form->addInput($sidebarBlock->multiMode());
}
// 其他函数保持不变...
function postMeta(/* 参数 */) { /* ... */ }
?>2.2 修改 footer.php 文件
文件位置:/usr/themes/主题名称/footer.php
在页脚版权信息后添加备案号显示代码:
<?php if (!defined('__TYPECHO_ROOT_DIR__')) exit; ?>
</div><!-- end .row -->
</div>
</div><!-- end #body -->
<footer id="footer" role="contentinfo">
© <?php echo date('Y'); ?> <a href="<?php $this->options->siteUrl(); ?>"><?php $this->options->title(); ?></a>.
<?php _e('由 <a href="https://typecho.org">Typecho</a> 强力驱动'); ?>.
<!-- 新增:备案号显示 -->
<?php if ($this->options->icp): ?>
<a href="https://beian.miit.gov.cn/" target="_blank" rel="nofollow" style="margin-left:10px;">
<?php $this->options->icp(); ?>
</a>
<?php endif; ?>
</footer><!-- end #footer -->
<?php $this->footer(); ?>
</body>
</html>带分隔符的样式版本:
<?php if ($this->options->icp): ?>
<span style="margin:0 5px;">|</span>
<a href="https://beian.miit.gov.cn/" target="_blank" rel="nofollow">
<?php $this->options->icp(); ?>
</a>
<?php endif; ?>2.3 后台填写备案号
- 登录Typecho后台
- 进入:控制台 → 外观 → 设置外观
- 在页面最下方找到“网站备案号”输入框
- 填写备案号(格式如:京ICP备12345678号-1)
- 保存设置
三、Caddy配置微信验证文件
3.1 错误配置示例
以下配置存在语法错误,handle 指令不能独立于站点块之外:
www.zhaopeng.site {
root * /var/www/html
php_fastcgi typecho:9000 {
try_files {path} {path}/index.php /index.php?{query}
env PATH_INFO {http.path_info}
}
file_server
encode gzip zstd
header {
X-Content-Type-Options nosniff
X-Frame-Options SAMEORIGIN
Referrer-Policy strict-origin-when-cross-origin
}
}
# 错误:handle不能放在站点块外部
handle /2d695757040021118c75b00ae3fa95b7.txt {
root * /srv/docs
file_server
}3.2 正确配置
www.zhaopeng.site {
root * /var/www/html
php_fastcgi typecho:9000 {
try_files {path} {path}/index.php /index.php?{query}
env PATH_INFO {http.path_info}
}
file_server
encode gzip zstd
header {
X-Content-Type-Options nosniff
X-Frame-Options SAMEORIGIN
Referrer-Policy strict-origin-when-cross-origin
}
# 微信验证文件处理(必须放在站点块内部)
handle /2d695757040021118c75b00ae3fa95b7.txt {
root * /srv/docs
file_server
}
}3.3 简化方案
将验证文件直接放在网站根目录,无需额外配置:
cp /srv/docs/2d695757040021118c75b00ae3fa95b7.txt /var/www/html/简化后的Caddy配置:
www.zhaopeng.site {
root * /var/www/html
php_fastcgi typecho:9000 {
try_files {path} {path}/index.php /index.php?{query}
env PATH_INFO {http.path_info}
}
file_server
encode gzip zstd
header {
X-Content-Type-Options nosniff
X-Frame-Options SAMEORIGIN
Referrer-Policy strict-origin-when-cross-origin
}
}3.4 部署与验证
重载Caddy配置:
# Docker容器方式
docker exec -it caddy容器名 caddy reload --config /etc/caddy/Caddyfile
# systemd管理方式
systemctl reload caddy验证文件是否可访问:
curl -I https://www.zhaopeng.site/2d695757040021118c75b00ae3fa95b7.txt预期返回 200 OK 状态码。
浏览器访问测试:
直接在浏览器中打开 https://www.zhaopeng.site/2d695757040021118c75b00ae3fa95b7.txt,确认能正常显示文件内容。
四、容器部署注意事项
4.1 文件修改方式
Typecho主题文件位于容器内部,修改方式如下:
方式一:目录映射(推荐)
在docker run或docker-compose中映射主题目录到宿主机:
volumes:
- /宿主机路径/theme:/var/www/html/usr/themes/主题名方式二:进入容器修改
# 进入容器
docker exec -it 容器名 /bin/bash
# 使用vim或nano编辑文件
vim /var/www/html/usr/themes/主题名/functions.php
vim /var/www/html/usr/themes/主题名/footer.php4.2 Caddy容器重载配置
docker exec -it caddy容器名 caddy reload --config /etc/caddy/Caddyfile五、微信申诉检查清单
提交微信恢复访问申诉前,确认以下事项:
- 域名已完成ICP备案,备案号已正确显示在网站页脚
- 网站已启用HTTPS,SSL证书有效且未过期
- 网站内容无违规信息(无敏感词、诱导分享、违法内容等)
- 微信验证文件路径正确,可通过
https://域名/验证文件名.txt正常访问 - 验证文件内容与微信要求完全一致(包括文件名大小写和扩展名)