关于虚拟主机
可以根据访问 Fess 时的主机名(HTTP Host 请求头的值)来区分搜索结果。 可以用多个主机名发布同一台 Fess 服务器,为每个主机名提供不同的搜索对象(爬取配置)和页面设计。 搜索界面的外观也可以按主机区分:名称与虚拟主机名一致的静态主题将用于该主机。
虚拟主机功能默认处于禁用状态(未配置)。请按以下步骤进行配置。
系统配置
在 管理员指南 > 常规配置 的”虚拟主机”中,配置访问来源主机名与虚拟主机名的对应关系。在爬取配置中指定这里配置的虚拟主机名。
格式
每行一条,按以下格式描述一个虚拟主机。
| 请求头名称 | 用于判断的 HTTP 请求头名称。通常指定 Host。通过反向代理访问时,也可以指定 X-Forwarded-Host。 |
| 请求头值 | 上述请求头中包含的主机名(必要时使用 主机名:端口号 格式)。当客户端发送的请求头值与此处配置的值完全匹配(不区分大小写)时,该虚拟主机生效。 |
| 虚拟主机名 | 在爬取配置中指定的虚拟主机名 |
示例
Note
判断依据是与请求头值的字符串匹配,而非主机名的名称解析(DNS)。 浏览器发送的 Host 请求头,在使用标准端口(HTTP 为 80,HTTPS 为 443)访问时不包含端口号,使用其他端口访问时则以 主机名:端口号 格式包含端口号。 因此,在非标准端口上发布时,请像 Host:abc.example.com:8080=host1 这样明确指定包含端口号。
Note
虚拟主机名只能使用字母数字字符和下划线( a-z 、 A-Z 、 0-9 、 _ )。 其他字符会被自动删除。
此外,以下名称为保留名称,不能用作虚拟主机名: admin 、 common 、 error 、 login 、 profile
各虚拟主机的页面设计
要为某个虚拟主机提供专用的搜索界面,请安装 theme.yml 中的 name 为该虚拟主机名小写形式(例如 host1 )的静态主题。 与该虚拟主机匹配的请求将使用该主题,其他请求则使用默认主题。 无需将该主题设为默认主题。从内置主题创建主题的方法请参见 自定义内置主题 ,安装方法请参见 主题 。
Note
自 Fess 15.9 起,保存配置后不会再在 WEB-INF/view/虚拟主机名 中生成 JSP。 登录界面( /login/ )在所有虚拟主机中都使用同一个界面( WEB-INF/view/admin/login/ )显示,无法按虚拟主机更改。 按虚拟主机区分的外观,如上所述,通过与虚拟主机名同名的静态主题来更改。
爬取配置
在 Web 爬取配置、文件爬取配置或数据存储爬取配置中指定”虚拟主机”。 “虚拟主机”请指定系统配置中设置的虚拟主机名之一。一个爬取配置中也可以指定多个虚拟主机(每行一个)。
通过虚拟主机访问的搜索,只会在搜索结果中显示指定了该虚拟主机的爬取配置中的文档。 不匹配任何虚拟主机的访问(未配置虚拟主机的普通访问)则不会进行此类筛选,将正常显示所有搜索结果。
示例
| 虚拟主机 | host1 |