## Rewrite (重寫) 中間件
Rewrite 中間件會根據提供的規則重寫URL路徑,它更適用于向后兼容與創建更清晰、更具描述性的鏈接。
*用法*
```go
e.Pre(middleware.Rewrite(map[string]string{
"/old": "/new",
"/api/*": "/$1",
"/js/*": "/public/javascripts/$1",
"/users/*/orders/*": "/user/$1/order/$2",
}))
```
星號中捕獲的值可以通過索引檢索,例如 $1, $2 等等。
### Custom Configuration
*用法*
```go
e := echo.New()
e.Pre(middleware.RewriteWithConfig(middleware.RewriteConfig{}))
```
### 配置
```go
// RewriteConfig defines the config for Rewrite middleware.
RewriteConfig struct {
// Skipper defines a function to skip middleware.
Skipper Skipper
// Rules defines the URL path rewrite rules.
Rules map[string]string `yaml:"rules"`
}
```
*默認配置*
| 名稱 | 值 |
| :------ | :------------- |
| Skipper | DefaultSkipper |
> 重寫中間件應該在路由之前通過 Echo#Pre() 注冊從而觸發。