OpenLiteSpeed logo OpenLiteSpeed用户手册

CGI上下文

目录

CGI上下文

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.1192.168.1.*

拒绝访问列表

描述

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

语法

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

示例

子网络可以写成192.168.1.0/255.255.255.0, 192.168.1192.168.1.*

授权器

描述

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

语法

从下拉列表选择

添加默认的字符集

描述

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

语法

布尔值

启用重写

描述

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

语法

布尔值

重写继承

描述

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

语法

布尔值

重写基准

描述

指定重写规则的基准URL。

语法

URL

重写规则

描述

指定虚拟主机级别的重写规则列表。

请勿在此处添加任何文档根级别的重写规则。 如果有来自.htaccess的文档根级别重写规则,请改为创建URI为"/"的静态Context, 并在那里添加这些重写规则。

重写规则由一个RewriteRule指令组成,并且前面可以选择性地放置多个RewriteCond指令。

  • 每条指令应只占一行。
  • RewriteCondRewriteRule遵循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, 数据库文件路径,