Path: API › 网站管理

`POST /site`

为指定网站创建反向代理，将指定路径的请求转发到后端服务。

## Request body

_Required._

- `action236.request_time` (string, required) — Unix 时间戳。
- `action236.request_token` (string, required) — 按 API 概览生成的签名。
- `action236.action` (string, required) — 具体操作名称。
  - one of `"CreateProxy"`
- `action236.sitename` (string, required) — 网站域名（注意小写）
- `action236.proxyname` (string, required) — 代理名称（3~40 字节）
- `action236.proxydir` (string, required) — 代理目录路径，如 `/api` 或 `/`
- `action236.proxysite` (string, required) — 目标 URL，如 `http://127.0.0.1:8080`
- `action236.type` (string, required) — 类型：`"1"` 启用
- `action236.cache` (string, required) — `"1"` 启用缓存 / `"0"` 禁用
- `action236.cachetime` (string, required) — 缓存时间（分钟），禁用缓存时传 `"0"`
- `action236.todomain` (string, required) — 目标域名（`$host` 值），填网站域名即可
- `action236.subfilter` (string, required) — JSON 数组，内容替换规则 `[{"sub1":"旧","sub2":"新"},...]`
- `action236.advanced` (string, required) — 高级模式：`"1"` / `"0"`

## Example request

```text
{
  "request_time": "string",
  "request_token": "string",
  "action": "CreateProxy",
  "sitename": "string",
  "proxyname": "string",
  "proxydir": "string",
  "proxysite": "string",
  "type": "string",
  "cache": "string",
  "cachetime": "string",
  "todomain": "string",
  "subfilter": "string",
  "advanced": "string"
}
```

## Code samples

### cURL（填写面板地址与签名）

```curl
curl --request POST \
  --url "https://your-panel.example.com:8888/site" \
  --header "Content-Type: application/x-www-form-urlencoded" \
  --data-urlencode "request_time=<Unix时间戳>" \
  --data-urlencode "request_token=<按 API 概览生成的签名>" \
  --data-urlencode "action=CreateProxy" \
  --data-urlencode "sitename=<sitename>" \
  --data-urlencode "proxyname=<proxyname>" \
  --data-urlencode "proxydir=<proxydir>" \
  --data-urlencode "proxysite=<proxysite>" \
  --data-urlencode "type=<type>" \
  --data-urlencode "cache=<cache>" \
  --data-urlencode "cachetime=<cachetime>" \
  --data-urlencode "todomain=<todomain>" \
  --data-urlencode "subfilter=<subfilter>" \
  --data-urlencode "advanced=<advanced>"
```

## Responses

### default

接口响应，业务状态见下方详细说明。

#### Example

```json
{
  "status": true,
  "msg": "添加成功"
}
```

- `action236.response.default.status` (boolean, optional) — `true` 添加成功
- `action236.response.default.msg` (string, optional) — `添加成功`


## CreateProxy

为指定网站创建反向代理，将指定路径的请求转发到后端服务。

- **路由**：`POST /site`
- **action**：`CreateProxy`

## 输入参数

| 参数名称 | 必选 | 类型 | 描述 |
|----------|------|------|------|
| action | 是 | String | 固定值 `CreateProxy` |
| sitename | 是 | String | 网站域名（注意小写） |
| proxyname | 是 | String | 代理名称（3~40 字节） |
| proxydir | 是 | String | 代理目录路径，如 `/api` 或 `/` |
| proxysite | 是 | String | 目标 URL，如 `http://127.0.0.1:8080` |
| type | 是 | String | 类型：`"1"` 启用 |
| cache | 是 | String | `"1"` 启用缓存 / `"0"` 禁用 |
| cachetime | 是 | String | 缓存时间（分钟），禁用缓存时传 `"0"` |
| todomain | 是 | String | 目标域名（`$host` 值），填网站域名即可 |
| subfilter | 是 | String | JSON 数组，内容替换规则 `[{"sub1":"旧","sub2":"新"},...]` |
| advanced | 是 | String | 高级模式：`"1"` / `"0"` |

## 输出参数

| 参数名称 | 类型 | 描述 |
|----------|------|------|
| status | Boolean | `true` 添加成功 |
| msg | String | `添加成功` |

## 示例

### 请求

```
POST /site HTTP/1.1
Host: 192.168.168.213:8888
Content-Type: application/x-www-form-urlencoded

action=CreateProxy&sitename=testapi.bt.local&proxyname=api_proxy&proxydir=/api&proxysite=http://127.0.0.1:9090&type=1&cache=0&cachetime=0&todomain=testapi.bt.local&subfilter=[{"sub1":"","sub2":""},{"sub1":"","sub2":""},{"sub1":"","sub2":""}]&advanced=0
```

### 响应

```json
{"status": true, "msg": "添加成功"}
```

## 相关接口

- [GetProxyList](/api/site/getproxylist) — 查询代理列表
- [ModifyProxy](/api/site/modifyproxy) — 修改代理

