OpenLiteSpeed用户手册 - CGI上下文
Description: OpenLiteSpeed用户手册 - CGI上下文.

用户手册
Version 1.9 — Rev. 3

# CGI上下文

#### 描述

CGI上下文会将特定目录中的脚本定义为CGI脚本。 该目录可以位于文档根目录内或外。 请求此目录下的文件时，无论文件是否可执行，服务器都会尝试将其作为CGI脚本执行。 这样，CGI上下文下的文件内容始终受到保护，不能作为静态内容读取。 建议将所有CGI脚本放在一个目录中，并设置CGI上下文来访问它们。

### URI

#### 描述

指定此上下文的URI。

#### 语法

URI可以是普通URI（以"/"开头），也可以是Perl兼容的正则表达式URI（以"exp:"开头）。 如果普通URI以"/"结尾，则此上下文将包含该URI下的所有子URI。 如果上下文映射到文件系统上的目录，则必须添加结尾的"/"。

#### 另请参阅

位置

### 路径

#### 描述

指定CGI脚本的位置。

#### 语法

路径可以是包含一组CGI脚本的目录，例如$VH_ROOT/myapp/cgi-bin/。 这种情况下，上下文URI必须以"/"结尾，例如/app1/cgi/。 路径也可以只指定一个CGI脚本，例如$VH_ROOT/myapp/myscript.pl。 该脚本应有对应的URI /myapp/myscript.pl。

### 标头控制

#### 描述

指定要添加的附加响应/请求头。可添加多个头指令，每行一个。"NONE"可用于禁用父级头继承。如果未提供指令，则假定为"Header"。

#### 语法

[Header]|RequestHeader [condition] set|append|merge|add|unset header [value] [early|env=[!]variable]

#### 示例

set Cache-control no-cache
append Cache-control no-store
Header set My-header cust_header_val
RequestHeader set My-req-header cust_req_header_val

#### 提示

[信息] 语法和用法类似于 Apache的mod_headers指令
[信息] 'Header'指令是可选的。从其他位置复制规则时，可以移除或保留它，不会影响使用。

### 允许设置UID

#### 描述

指定CGI脚本是否允许set UID位。如果允许，并且CGI脚本启用了set UID位，那么无论CGI脚本代表哪个用户启动，CGI进程的用户ID都会切换为CGI脚本所有者的用户ID。
默认值为"Off"。

#### 语法

布尔值

#### 提示

[安全建议] 尽可能不要允许CGI脚本设置UID，因为这本身存在安全风险。

### 域

#### 描述

指定此上下文的授权域。 指定后，必须提供有效的用户名和密码才能访问此上下文。 授权Realm需要在虚拟主机安全部分进行设置。 此设置使用每个授权域的Realm名称。

#### 语法

从下拉列表选择

### 认证名称

#### 描述

为当前上下文的授权域指定一个替代名称。 如果未指定，将使用原授权域名称。 认证名称会显示在浏览器登录弹窗中。

#### 语法

文本

### Require（授权的用户/组）

#### 描述

指定哪些用户/用户组可以访问此上下文。 这允许你在多个上下文中使用同一个用户/组数据库（由域指定）， 但只允许该数据库中的特定用户/组访问此上下文。

#### 语法

语法与Apache的Require指令兼容。例如：

- user username [username ...]
  只有列出的用户可以访问此上下文。
- group groupid [groupid ...]
  只有属于列出组的用户可以访问此上下文。

如果未指定此设置，所有有效用户都可以访问此资源。

### 允许访问列表

#### 描述

指定允许访问此上下文下资源的IP地址或子网。综合 拒绝访问列表项的配置以及服务器/虚拟主机级别访问控制， 可访问性将以客户端IP所符合的最小范围来确定。

#### 语法

逗号分隔的IP地址/子网列表。

#### 示例

网络可以写成192.168.1.0/255.255.255.0, 192.168.1 或192.168.1.*。

### 拒绝访问列表

#### 描述

指定哪些IP地址或子网不允许访问此上下文下的资源。 综合允许访问列表项的配置以及服务器/虚拟主机级别访问控制， 可访问性将以客户端IP所符合的最小范围来确定。

#### 语法

逗号分隔的IP地址/子网列表。

#### 示例

子网络可以写成192.168.1.0/255.255.255.0, 192.168.1 或192.168.1.*。

### 授权器

#### 描述

指定可用于生成授权/未授权决策的外部应用程序。目前仅FastCGI授权器可用。有关FastCGI授权器角色的更多详细信息， 请访问https://fastcgi-archives.github.io/。

#### 语法

从下拉列表选择

### 添加默认的字符集

#### 描述

指定当内容类型为"text/html"或"text/plain"且没有参数时，是否向"Content-Type"响应报头添加字符集标记。设置为Off时，该功能禁用。设置为On时，将添加自定义默认字符集中指定的字符集；如果未指定，则添加默认的"iso-8859-1"字符集。

#### 语法

布尔值

### 自定义默认字符集

#### 描述

指定当添加默认的字符集为On时使用的字符集。此项可选，默认值为iso-8859-1。当添加默认的字符集为Off时，本设置不生效。

#### 语法

字符集名称。

#### 示例

utf-8

### 启用重写

#### 描述

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

#### 语法

布尔值

### 重写继承

#### 描述

指定是否从父级上下文继承重写规则。 如果启用重写但不继承，将使用此上下文中定义的重写基准和重写规则。

#### 语法

布尔值

### 重写基准

#### 描述

指定重写规则的基准URL。

#### 语法

URL

### 重写规则

#### 描述

指定虚拟主机级别的重写规则列表。
请勿在此处添加任何文档根级别的重写规则。 如果有来自.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重写指南 .

#### 语法

字符串

### 启用IP地理定位

#### 描述

指定是否启用IP地理定位查找。 可以在服务器、虚拟主机或上下文级别设置。使用“Not Set”值时，默认禁用IP地理定位。

#### 语法

布尔值

#### 另请参阅

使用报头中的客户端IP, 数据库文件路径,