# Map Local（目录）

> 使用 Proxyman 的 Map Local（目录）功能，从本地文件夹中的文件响应匹配的请求；文件不存在时，回退到真实服务器。

## 1. 这是什么？ {#1-whats-it}

这是一个实用的工具，可将匹配的请求映射到所选目录中的本地文件。如果本地文件不存在，Proxyman 会从真实服务器返回响应。

如果你只想映射单个本地文件，请参阅 Map Local（文件）页面。

- [Map Local（文件）](https://proxyman.com/docs/zh-cn/advanced-features/map-local)

## 2. 使用方法 {#2-how-to-use}

![Proxyman Map Local 编辑器处于 Local Directory 模式，将 https://httpbin.proxyman.app/anything/* 映射到 /Users/Shared/Demo/api](https://proxyman.com/docs/assets/proxyman-map-local-directory-editor.jpg)

_将 URL 映射到本地目录_

### 2.1 映射路径及其子目录 {#21-map-a-path-and-its-subdirectories}

`api.proxyman.io/build/v1/*` => `/v1/` 之后的所有子路径都将映射到所选目录。

例如，我们选择 `~/desktop/my_folder` 作为本地目录。

| 真实 URL                                   | 解析后的本地路径                 |
| ------------------------------------------ | -------------------------------- |
| http://api.proxyman.io/build/v1/index.html | \~/desktop/my\_folder/index.html |
| http://api.proxyman.io/build/v1/js/main.js | \~/desktop/my\_folder/js/main.js |

#### 配置方法 {#how-to-config}

| 规则     | 使用方法                                                                                       | 示例                                                                                                                |
| -------- | ---------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- |
| 通配符   | <ul><li>勾选 “Include all subpaths of this URL” 复选框</li><li>或在 URL 末尾使用 /*</li></ul> | <ul><li>api.proxyman.io/build/v1/（勾选）</li><li>api.proxyman.io/build/v1/*</li></ul>                             |
| 正则表达式 | <ul><li>在末尾使用 (.*)</li></ul>                                                              | <ul><li>https:\/\/api.proxyman.io\/build\/v1\/(.*)</li><li>https:\/\/api.proxyman.io\/build\/v1\/(.*.css)</li></ul> |

> **备注:** 请确保使用正则分组运算符 `()` 告诉 Proxyman 映射的位置。 

### 2.2 映射整个主机 {#22-map-entire-host}

`api.proxyman.io/*` => 所有子路径都将映射到所选目录。

例如，我们选择 `~/desktop/my_folder` 作为本地目录。

| 真实 URL                                   | 解析后的本地路径                          |
| ------------------------------------------ | ----------------------------------------- |
| http://api.proxyman.io/build/v1/index.html | \~/desktop/my\_folder/build/v1/index.html |
| http://api.proxyman.io/build/v1/js/main.js | \~/desktop/my\_folder/build/v1/js/main.js |

#### 配置方法 {#how-to-config-1}

| 规则     | 使用方法                                                        | 示例                                                                                          |
| -------- | --------------------------------------------------------------- | --------------------------------------------------------------------------------------------- |
| 通配符   | <ul><li>路径留空</li></ul>                                      | <ul><li>api.proxyman.io</li></ul>                                                             |
| 正则表达式 | <ul><li>使用末尾包含 (.*) 的单一路径</li></ul>                | <ul><li>https:\/\/api.proxyman.io\/(.*)</li><li>https:\/\/api.proxyman.io\/(*.html)</li></ul> |

## 3. 使用 Scripting 工具实现 Map Local（目录）✅  {#3-map-local-directory-with-scripting-tool--}

如果你需要使用 **复杂规则** 实现 Map Local（目录），请参阅 [Scripting](https://proxyman.com/docs/zh-cn/scripting/script#1-whats-it)，它能更轻松地达到相同的效果。

请参阅我们的 [代码片段](https://proxyman.com/docs/zh-cn/scripting/snippet-code#2-common-on-request-and-response)，了解如何使用 JavaScript 代码映射本地文件。
