Web 站点规则和全局 Web 设置

Web 站点规则是有助于您维护 Web 站点的组织的文档。Web 站点规则作为对“Web 站点”文档的响应文档而创建,并且只适用于该特定的“Web 站点”文档。如果要将一个规则应用于多个“Web 站点”文档,请从一个“Web 站点”文档复制规则文档并将其粘贴到其他文档。

Web 站点规则具有两个主要用途:

  • 使管理员能够为 Web 站点创建一致的和用户友好的导航方案,该方案与站点的实际物理组织无关。
  • 允许在不断开现有链接或浏览器书签的情况下重新定位或重新组织站点的某些部分。

在将 Web 站点规则应用于外来的 URL 之前,应按照一组预定义的过滤和认证规则和过程对该 URL 进行规范化。这些过程将 URL 缩减为一种安全的形式,然后再将其传递到应用程序进行处理。一旦对 URL 进行了规范化,HTTP 任务就使用为 Web 站点定义的规则确定是否应以某种方式修改 URL。

注: 只能使用 URL 路径进行模式匹配。应保存查询字符串以便于应用程序使用。为规则的“外来 URL 模式”字段指定的任何模式都不应包括主机名或查询字符串。

有四种类型的 Web 站点规则。如果已经为“Web 站点”文档创建了多个类型的 Web 站点规则,应按如下顺序评估规则文档:

  • 替换
  • 重定向
  • 目录
  • HTTP 响应标题

替换规则

替换规则将外来 URL 的一个或多个部分替换为新的字符串。当您希望重新组织 Web 站点,而不希望重写站点中的所有链接,或者当您希望为复杂的 URL 提供用户友好的别名时,应当使用替换规则。

例如,如果您将 Web 站点上的大量文档从一个目录移到了另一个目录,则替换规则非常有用。替换规则会将旧目录映射到新目录,而不是修复指向旧目录的所有链接。

替换规则中的每个外来和替换模式都必须至少指定一个通配符。如果未在模式中的某个位置明确地包含通配符,那么 HTTP 任务会在将规则存储在其内部表时自动将 /* 附加到模式的后面。

重定向规则

重定向规则将外来 URL 重定向到其他 URL。有两种类型的重定向规则:外部重定向和内部重定向。外部重定向规则导致服务器通知浏览器由浏览器请求的文件或其他资源位于另一个 URL。如果外来 URL 的路径与外部重定向规则相匹配,则 HTTP 任务将基于重定向模式生成一个新的 URL, 并立即将该 URL 返回给浏览器。使用外部重定向规则允许现有链接和书签保持正常工作,但确保了新书签指向新的位置。

内部重定向规则与替换规则相似,都是 HTTP 任务生成一个新的 URL 然后重新对其进行规范化。但是,它们之间存在两个区别。首先,对重定向表进行的是递归搜索,因此您可以创建并嵌套多个重定向规则。第二,内部重定向规则不要求使用通配符。因此,如果您希望对 URL 路径强制进行确切匹配,则可以选择使用内部重定向规则(而不是替换规则)。

如果外来 URL 的路径与内部重定向规则相匹配,则 HTTP 任务将生成一个新路径,并对该路径进行规范化,然后重新搜索重定向规则表。由于 HTTP 任务对重定向规则表进行递归搜索,因此,无论已经应用的是替换规则还是重定向规则,都可以编写用于捕捉 URL 的各种重定向规则。

注: 进行递归搜索意味着如果编写互相匹配的重定向规则,则有可能陷入无限循环。为了消除这种可能性,HTTP 任务有一个内置的递归限制 (10)。

可以但不要求在重定向规则中使用通配符。

目录规则

目录规则将文件系统目录映射为 URL 模式。当 Web 服务器收到与模式相匹配的 URL 时,服务器假定 URL 正请求该目录中的资源。

安装 Domino® Web 服务器时,会自动创建几个文件-资源目录。这些缺省目录由在“Web 站点”文档的“配置”选项卡上定义的目录规则进行映射。当 Web 服务器启动时,它自动创建用于将这些目录映射为 URL 模式的内部规则。有三个缺省目录:

  • 用于非图形文件的 HTML 目录
  • 用于图形图像(如 .GIF)的图标目录
  • 用于 CGI 程序的 CGI 目录

目录规则仅用于映射要直接读取的文件(如 HTML 文件和图形文件)和要由操作系统装入和运行的可执行程序(如 CGI 程序)的位置。目录规则不能用于映射其他类型的资源(如 Domino® 数据库或 Java servlet)的位置。

当创建目录 Web 站点规则时,应为文件系统目录指定读取或执行权限。选择正确的访问权至关重要。应只对包含 CGI 程序的目录启用“执行”权限。其他所有目录应具有“读取”权限。如果您指定的访问级别有误,则可能出现意外的结果。例如,如果将 CGI 目录标记为“读取”权限,则当浏览器用户发送 CGI 程序的 URL 时,服务器将返回程序的源代码,而不是执行该程序,这可能是严重的安全漏洞。

目录规则不能覆盖由操作系统实施的文件访问权限。

注: 访问级别由指定目录下的所有子目录继承。

HTTP 响应标题规则

每个 HTTP 浏览器请求和服务器响应都始于一组描述所传输数据的标题。HTTP 响应标题规则允许应用程序设计者定制 Domino® 发送的标题(如 HTTP 响应的到期标题或定制标题)并响应与指定的 URL 模式相匹配的请求。

响应规则最重要的用途是改善浏览器的缓存性能。应用程序设计者可添加标题,以便向浏览器提供有关高速缓存资料的更新率的重要信息。

高速缓存标题包括最近修改的标题、到期标题以及高速缓存控制标题。最近修改标的题指出用于生成响应的资源上次更改的时间。到期标题通知浏览器资源何时会更改。设计者可基于其预计的资源更改时间定义一个规则,将到期标题添加到响应中。高速缓存控制标题向浏览器和代理服务器高速缓存提供明确说明,如“非高速缓存”表示响应不应当高速缓存,“私有”表示响应可被高速缓存但是特定于浏览器配置。

还可以使用响应规则定制标题。例如,可以为显示特定错误消息的定制标题创建响应规则。例如,当用户未被授权访问应用程序时。

与其他 Web 站点规则不同的是,响应规则适用于外出响应,并且就在 HTTP 任务将响应传输给浏览器之前应用。对于响应标题规则,应针对已经应用了替换规则和重定向规则之后的最终 URL 形式进行模式匹配。例如,如果您有一个将 /help/* 转换为 /support.nsf/helpview/* 的替换规则,且希望创建一个匹配响应的响应规则,则响应规则的模式应当为 /support.nsf/helpview/*

模式中可以包括一个或多个星号作为通配符。例如,模式 /*/catalog/*.htm 将与 /petstore/catalog/food.htm/clothing/catalog/thumbnails.htm 等 URL 匹配。在响应规则中无需通配符。这允许您创建与特定资源相匹配的规则,如 /cgi-bin/account.pl。同样,对于所有规则,外来模式中不能包含查询字符串。

响应标题规则与其他规则的不同之处在于,它们不仅必须与 URL 模式进行匹配,还必须与 HTTP 响应状态代码进行匹配。您需要在“HTTP 响应代码”字段中指定一个或多个状态代码。

全局 Web 设置

全局 Web 设置使您能够将 Web 规则应用于多个 Web 站点。应为“全局 Web 设置”文档指定名称,并指定要应用全局 Web 设置的服务器。然后为“全局 Web 设置”文档创建“Web 规则”文档。然后再将 Web 规则应用于由在“全局 Web 设置”文档中指定的服务器驻留的所有 Web 站点。

“全局 Web 设置”文档及其相关的“Web 站点规则”文档不会自动创建。如果希望在 Web 环境中使用“全局 Web 设置”文档和“Web 站点规则”文档,需要手动创建。