用户手册
Version 1.9 — Rev. 3

# 重写

### 启用重写

#### 描述

指定是否启用LiteSpeed的URL重写引擎。 此选项可在虚拟主机或Context级别自定义， 并会沿目录树继承，直到被显式覆盖。

#### 语法

布尔值

### 自动加载.htaccess

#### 描述

如果使用rewritefile指令的目录还没有对应的HttpContext，则在首次访问该目录时自动加载.htaccess文件中包含的重写规则。首次加载后，必须执行平滑重启才能使对该.htaccess文件的后续修改生效。
虚拟主机级别设置将覆盖服务器级别设置。 默认值：
服务器级别：No
虚拟主机级别：继承服务器级别设置

#### 语法

布尔值

### 日志级别

#### 描述

指定重写引擎调试输出的详细程度。 此值范围为0-9。0禁用日志记录，9生成最详细日志。 服务器和虚拟主机的错误日志日志级别 必须至少设置为INFO，此选项才会生效。 此设置在测试重写规则时很有用。

#### 语法

无符号整数

#### 另请参阅

Server 日志级别, Virtual Host 日志级别

### 名称

#### 描述

指定虚拟主机级别重写映射的唯一名称。重写规则中的映射引用会使用此名称。 引用此名称时，应使用以下语法之一：

> `$\{MapName:LookupKey\}
> $\{MapName:LookupKey|DefaultValue\}`

LiteSpeed重写引擎实现遵循Apache重写引擎规范。有关重写映射的更多详细信息，请参阅 Apache mod_rewrite文档 .

#### 语法

字符串

### 位置

#### 描述

使用MapType:MapSource语法指定重写映射的位置。
LiteSpeed重写引擎支持三种重写映射：

- 标准纯文本

  > MapType: txt;
  > MapSource: 指向有效纯ASCII文件的文件路径。

  此文件的每一行都应包含两个以空白分隔的元素。第一个元素是键，第二个元素是值。可以使用前导"#"符号添加注释。
- 随机纯文本

  > MapType: rnd;
  > MapSource: 有效纯ASCII文件的文件路径。

  文件格式类似于标准纯文本文件，但第二个元素可以包含多个由"|"符号分隔的选项，并由重写引擎随机选择。
- 内部函数

  > MapType: int;
  > MapSource: 内部字符串函数

  有4个可用函数：
  - toupper: 将查找键转换为大写。
  - tolower: 将查找键转换为小写。
  - escape: 对查找键执行URL编码。
  - unescape: 对查找键执行URL解码。
Apache中可用的以下映射类型未在LiteSpeed中实现：
哈希文件和外部重写程序。

LiteSpeed重写引擎实现遵循Apache重写引擎规范。有关重写映射的更多详细信息，请参阅 Apache mod_rewrite文档 .

#### 语法

字符串

### 重写规则

#### 描述

指定虚拟主机级别的重写规则列表。
请勿在此处添加任何文档根级别的重写规则。 如果有来自.htaccess的文档根级别重写规则，请改为创建URI为"/"的静态Context， 并在那里添加这些重写规则。
重写规则由一个RewriteRule指令组成，并且前面可以选择性地放置多个RewriteCond指令。

- 每条指令应只占一行。
- RewriteCond和RewriteRule遵循Apache的重写指令语法。可以直接从Apache配置文件复制并粘贴重写指令。
- LiteSpeed与Apache mod_rewrite的实现有细微差别：
  - %\{LA-U:variable\}和%\{LA-F:variable\}会被LiteSpeed重写引擎忽略。
  - LiteSpeed重写引擎新增了两个服务器变量： %\{CURRENT_URI\}表示重写引擎正在处理的当前URI， %\{SCRIPT_NAME\}与对应CGI环境变量含义相同。
  - LiteSpeed重写引擎遇到[L]标志后会停止处理重写规则以避免循环； Apache mod_rewrite只会停止当前迭代中的重写规则处理。此行为类似于Apache mod_rewrite中的[END]标志。

LiteSpeed重写引擎实现遵循Apache重写引擎规范。 有关重写规则的更多详细信息，请参阅 Apache mod_rewrite文档 和 Apache URL重写指南 .

#### 语法

字符串