惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Recent Announcements
Recent Announcements
The Last Watchdog
The Last Watchdog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
C
Cybersecurity and Infrastructure Security Agency CISA
T
Threatpost
C
Cisco Blogs
WordPress大学
WordPress大学
小众软件
小众软件
量子位
P
Palo Alto Networks Blog
Project Zero
Project Zero
T
Threat Research - Cisco Blogs
T
Tor Project blog
P
Proofpoint News Feed
T
The Exploit Database - CXSecurity.com
博客园 - 聂微东
P
Privacy International News Feed
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
The Hacker News
The Hacker News
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
大猫的无限游戏
大猫的无限游戏
博客园_首页
Hugging Face - Blog
Hugging Face - Blog
B
Blog RSS Feed
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
博客园 - 三生石上(FineUI控件)
Y
Y Combinator Blog
Attack and Defense Labs
Attack and Defense Labs
C
CERT Recently Published Vulnerability Notes
AI
AI
Hacker News - Newest:
Hacker News - Newest: "LLM"
NISL@THU
NISL@THU
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
IT之家
IT之家
K
Kaspersky official blog
Webroot Blog
Webroot Blog
宝玉的分享
宝玉的分享
W
WeLiveSecurity
Recorded Future
Recorded Future
Stack Overflow Blog
Stack Overflow Blog
Application and Cybersecurity Blog
Application and Cybersecurity Blog
The Cloudflare Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Latest news
Latest news
爱范儿
爱范儿
H
Hacker News: Front Page
AWS News Blog
AWS News Blog
博客园 - 【当耐特】
月光博客
月光博客
博客园 - Franky

Halo - 强大易用的开源建站工具 | 应用市场

Kaze 代码增强(高亮+折叠+长图折叠) 氢·简 文章组件 Floating Particles Huohuo Weather Glass Vahlok AstraHub 星链 全局私密 业余无线电 QSL卡片管理系统 Bark 推送 微信读书(WeRead)信息展示 自定义社交分享卡片 Halorum 文章加密 KMath 轻言 Navidrome 播放器 家庭私厨 页面转换器 Sky Blog 3(macOS) 在线显示 邀请码注册 安全跳转助手 日程日历 Cartly 商城主题
域名主题路由
2026-06-15 · via Halo - 强大易用的开源建站工具 | 应用市场

🎨 Domain Theme Router

一套内容,无限可能 —— 让你的 Halo 站点在不同域名下展现不同风采

License: GPL-3.0
Halo Version


🧑🏻‍💻体验

氢·简
氢·雅

🚀 这是什么?

Domain Theme Router 是一个 Halo CMS 插件,它可以让你:

  • ✅ 为同一个 Halo 站点配置多个域名
  • ✅ 每个域名绑定不同的前台主题
  • ✅ 所有域名共享相同的文章、页面、菜单和后台管理

简单来说:你有两篇文章,但想在 blog.example.com 用简约风格,在 news.example.com 用新闻风格。这个插件就能帮你实现!


交流群

点击链接加入群聊【halo博客-lywq插件】

✨ 核心亮点

🎯 一石多鸟

一套内容,多个域名,不同主题。无需重复发布,无需多站点管理。

⚡ 极速体验

基于 WebFilter 实现,请求处理性能影响微乎其微。用户无感知,体验零延迟。

🔌 即插即用

无需修改代码,无需复杂配置。安装插件,配置域名,立即生效。

🛡️ 稳定可靠

智能主题验证,自动回退机制。主题不可用时,自动切换到默认主题,确保站点始终可用。


📖 使用场景

🏢 企业多品牌运营

brand-a.com → 商务风格主题
brand-b.com → 科技风格主题  
brand-c.com → 创意风格主题

📰 内容分发网络

news.example.com → 新闻资讯风格
blog.example.com → 个人博客风格
docs.example.com → 文档中心风格

🧪 A/B 测试

v1.example.com → 主题 A
v2.example.com → 主题 B

🌍 多地区站点

cn.example.com → 中国风主题
us.example.com → 欧美风主题
jp.example.com → 日系风格主题

🛠️ 快速开始

1. 安装插件

  1. 下载最新版本的 halo-plugin-domain-theme-router-x.x.x.jar
  2. 在 Halo 后台 → 插件 → 安装插件
  3. 上传 jar 文件并启用

2. 配置域名绑定

  1. 进入插件设置页面

  2. 点击「添加绑定」

  3. 填写配置信息:

    • 访问域名:你的域名,如 blog.example.com
    • 绑定主题:选择已安装的主题
    • 启用状态:是否激活此绑定
    • 备注:可选,方便管理
  4. 点击保存

3. 配置 DNS/反向代理

确保你的域名正确指向 Halo 服务器,并且传递了正确的 HostX-Forwarded-Host 请求头。

Nginx 配置示例:

server {
    listen 80;
    server_name blog.example.com;

    location / {
        proxy_pass http://localhost:8090;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Host $host;
    }
}

4. 验证配置

访问你配置的域名,检查是否显示了对应的主题。


💡 工作原理

用户访问域名
      ↓
  插件拦截请求
      ↓
读取 Host / X-Forwarded-Host
      ↓
  匹配域名绑定
      ↓
┌─────────────────────────────────────┐
│ 命中绑定?                           │
│  ├─ 是 → 使用绑定的主题              │
│  └─ 否 → 使用 Halo 默认激活主题      │
└─────────────────────────────────────┘

⚙️ 配置说明

域名格式

插件支持多种域名格式:

输入格式 实际匹配域名
blog.example.com blog.example.com
http://blog.example.com blog.example.com
https://blog.example.com:443 blog.example.com
BLOG.EXAMPLE.COM blog.example.com

主题选择

  • 只能选择已安装的 Halo 主题
  • 如果绑定的主题被卸载,运行时自动回退到默认主题
  • 建议在卸载主题前先解除相关域名绑定

📋 技术规格

项目 说明
最低 Halo 版本 2.24.0+
Java 版本 21+
存储方式 插件设置表单
匹配方式 精确域名匹配
性能影响 极小(WebFilter 实现)

❓ 常见问题

Q: 为什么访问域名后还是显示默认主题?

A: 检查以下几点:

  1. 域名绑定是否已启用
  2. 域名是否填写正确(检查大小写和端口)
  3. DNS 是否已生效
  4. 反向代理是否正确传递了 HostX-Forwarded-Host 请求头
  5. 绑定的主题是否已安装且可用

Q: 可以使用通配符域名吗?

A: 不支持。 当前版本只支持精确域名匹配。如果你需要 *.example.com 的形式,需要为每个子域名单独配置。

Q: 多个域名可以绑定同一个主题吗?

A: 可以。 你可以让多个域名指向同一个主题。

Q: 会影响后台管理吗?

A: 不会。 所有域名共享同一个 Halo 后台,管理操作完全一致。

Q: 可以绑定未安装的主题吗?

A: 不可以。 设置页面只会显示已安装的主题列表。如果主题被卸载,相关绑定会自动失效并回退到默认主题。


🔧 开发环境

环境要求

  • Java 21+
  • Node.js 18+
  • pnpm
  • Halo 2.24.0+

开发命令

# 构建插件
./gradlew build

# 开发前端
cd ui
pnpm install
pnpm dev

# 运行测试
./gradlew test

本地调试

# 启动 Halo 开发服务器
./gradlew haloStart

# 访问 Halo 后台
# http://localhost:8181/console

📚 文档资源


🤝 参与贡献

我们欢迎所有形式的贡献!

  • 🐛 报告 Bug
  • 💡 提出新功能建议
  • 📖 完善文档
  • 🔧 提交代码

📄 许可证

GPL-3.0 © liuyiwuqing


📞 联系我们