PHPackages                             ylping5330/flarum-multi-domain - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. ylping5330/flarum-multi-domain

ActiveFlarum-extension[Utility &amp; Helpers](/categories/utility)

ylping5330/flarum-multi-domain
==============================

Flarum extension for multi-domain support with different SEO settings, templates, and posts

01↓100%PHP

Since Sep 25Pushed 7mo agoCompare

[ Source](https://github.com/ylping5330/flarum-multi-domain)[ Packagist](https://packagist.org/packages/ylping5330/flarum-multi-domain)[ RSS](/packages/ylping5330-flarum-multi-domain/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

Flarum Multi Domain Extension
=============================

[](#flarum-multi-domain-extension)

一个支持单站点多域名的Flarum扩展，可以为不同域名显示不同的SEO设置（TKD）、模板样式和帖子内容。

功能特性
----

[](#功能特性)

- ✅ **多域名SEO支持**: 为不同域名设置不同的标题(Title)、关键词(Keywords)和描述(Description)
- ✅ **动态模板切换**: 根据访问域名显示不同的样式和模板
- ✅ **内容过滤**: 不同域名可以显示不同的帖子和讨论
- ✅ **配置文件管理**: 通过简单的文本文件管理域名配置
- ✅ **前端API支持**: 提供API接口获取当前域名配置

安装方法
----

[](#安装方法)

### 方法1: 通过Composer安装（推荐）

[](#方法1-通过composer安装推荐)

```
composer require ylping5330/flarum-multi-domain
```

### 方法2: 手动安装

[](#方法2-手动安装)

1. 下载扩展文件到Flarum的`extensions`目录
2. 运行以下命令：

```
composer install --no-dev
php flarum migrate
php flarum cache:clear
```

配置说明
----

[](#配置说明)

### 1. 创建SEO配置文件

[](#1-创建seo配置文件)

在Flarum根目录下创建`seo.txt`文件，格式如下：

```
域名|标题|关键词|描述

```

**示例：**

```
domain1.com|网站1标题|关键词1,关键词2,关键词3|这是域名1的描述信息
domain2.com|Website 2 Title|keyword1,keyword2,keyword3|This is the description for domain2
example.com|示例网站|示例,测试,论坛|这是一个示例网站的描述

```

### 2. 启用扩展

[](#2-启用扩展)

在Flarum管理后台的扩展页面启用"Multi Domain"扩展。

使用说明
----

[](#使用说明)

### SEO设置

[](#seo设置)

扩展会自动根据访问的域名读取`seo.txt`文件中对应的配置，并设置：

- 页面标题 (``)
- Meta关键词 (``)
- Meta描述 (``)
- Open Graph标签
- Twitter Card标签

### 模板样式

[](#模板样式)

扩展会为不同域名添加CSS类：

```
/* 域名为domain1.com时 */
body.domain-domain1_com {
    /* 自定义样式 */
}

/* 域名为domain2.com时 */
body.domain-domain2_com {
    /* 自定义样式 */
}
```

你可以在主题的CSS文件中使用这些类来为不同域名设置不同的样式。

### 内容过滤

[](#内容过滤)

扩展支持多种内容过滤方式：

1. **通过标签过滤**（需要Tags扩展）：

    - 创建以`domain-域名`格式命名的标签
    - 例如：`domain-example-com`
2. **通过关键词过滤**：

    - 根据SEO配置中的关键词过滤相关内容

### 前端API

[](#前端api)

扩展提供API接口获取当前域名配置：

```
// 获取当前域名配置
app.request({
  method: 'GET',
  url: app.forum.attribute('apiUrl') + '/multi-domain/config'
}).then(response => {
  const config = response.data.attributes;
  console.log('当前域名:', config.domain);
  console.log('标题:', config.title);
  console.log('关键词:', config.keywords);
  console.log('描述:', config.description);
});
```

高级配置
----

[](#高级配置)

### 自定义CSS文件

[](#自定义css文件)

你可以为每个域名创建独立的CSS文件：

1. 在`public/assets/extensions/ylping5330-multi-domain/css/`目录下创建以域名命名的CSS文件
2. 例如：`domain1.com.css`、`domain2.com.css`

### 自定义主题色

[](#自定义主题色)

在前端JavaScript中，扩展会根据域名自动应用不同的主题色：

```
const themeColors = {
  'domain1.com': '#e74c3c',  // 红色
  'domain2.com': '#3498db',  // 蓝色
  'example.com': '#2ecc71'   // 绿色
};
```

你可以修改`js/src/forum/index.js`文件来自定义主题色。

开发说明
----

[](#开发说明)

### 文件结构

[](#文件结构)

```
├── composer.json              # Composer配置
├── extend.php                 # 扩展器配置
├── src/
│   ├── Middleware/
│   │   └── DomainMiddleware.php      # 域名检测中间件
│   ├── Service/
│   │   ├── DomainConfigService.php   # 域名配置服务
│   │   └── PostFilterService.php     # 帖子过滤服务
│   ├── Listener/
│   │   ├── AddSeoData.php           # SEO数据监听器
│   │   ├── ModifyTemplate.php       # 模板修改监听器
│   │   └── FilterDiscussions.php    # 讨论过滤监听器
│   └── Api/Controller/
│       └── GetConfigController.php   # 配置API控制器
├── js/src/
│   ├── forum/index.js         # 前端JavaScript
│   └── admin/index.js         # 管理后台JavaScript
├── resources/
│   ├── less/
│   │   ├── forum.less         # 前端样式
│   │   └── admin.less         # 管理后台样式
│   └── locale/
│       ├── en.yml             # 英文本地化
│       └── zh.yml             # 中文本地化
└── seo.txt                    # SEO配置文件示例

```

### 扩展开发

[](#扩展开发)

如果你需要修改或扩展功能：

1. 修改相应的PHP类文件
2. 更新前端JavaScript代码
3. 运行`npm run build`编译前端资源
4. 清除Flarum缓存：`php flarum cache:clear`

兼容性
---

[](#兼容性)

- **Flarum版本**: ^1.0 1
- **PHP版本**: &gt;= 7.4
- **可选依赖**: flarum/tags（用于标签过滤功能）

许可证
---

[](#许可证)

MIT License

支持
--

[](#支持)

如果你遇到问题或有建议，请：

1. 查看[Flarum官方文档](https://docs.flarum.org/zh/) 2
2. 在GitHub上提交Issue
3. 在Flarum社区论坛寻求帮助

更新日志
----

[](#更新日志)

### v1.0.0

[](#v100)

- 初始版本发布
- 支持多域名SEO设置
- 支持模板样式切换
- 支持内容过滤功能

###  Health Score

16

—

LowBetter than 5% of packages

Maintenance44

Moderate activity, may be stable

Popularity2

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity13

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/209303062?v=4)[ylping5330](/maintainers/ylping5330)[@ylping5330](https://github.com/ylping5330)

---

Top Contributors

[![ylping5330](https://avatars.githubusercontent.com/u/209303062?v=4)](https://github.com/ylping5330 "ylping5330 (3 commits)")

### Embed Badge

![Health badge](/badges/ylping5330-flarum-multi-domain/health.svg)

```
[![Health](https://phpackages.com/badges/ylping5330-flarum-multi-domain/health.svg)](https://phpackages.com/packages/ylping5330-flarum-multi-domain)
```

###  Alternatives

[aucor/dynamic-mo-loader

Better text domain loading with object cache support for WordPress

4554.1k1](/packages/aucor-dynamic-mo-loader)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
