文件类型和路径
- 匹配文件类型:根据文件扩展名自动匹配路由。
*.html会匹配所有 HTML 文件,*.jpg匹配所有 JPG 图片文件等。 - 路径处理:
- 精确匹配:如果文件名和路径完全一致,会直接返回该文件。
- 文件扩展名匹配:如果路径没有指定扩展名,会自动匹配文件扩展名。
Gzip 压缩
- 自动压缩:默认情况下,Surge 会自动为内容提供 Gzip 压缩,使其更易于传输。
- 自定义压缩规则:
{ "rules": [ { "source": "/", "targets": ["/index.html"], "condition": "^(GET|HEAD) /" } ] }可以指定 路径的 GET 或 HEAD 请求,自动压缩为
/index.html。
缓存控制
- 设置缓存期:可以在 Surge 的配置文件中设置缓存期,避免频繁重新加载内容。
{ "cache": { "maxAge": "31536000", "level": 3 } }maxAge:单位为秒,表示缓存时间。level:表示缓存级别, 为不缓存,1 为缓存到同一台机器,2 为缓存到同一网络,3 为缓存到 CDN。
错误处理
- 自定义错误页面:
{ "rules": [ { "source": "/", "targets": ["/404"], "condition": "404" } ] }可以将 404 错误页面指定为
/404.html。
其他配置
- 域名和子域名:可以在 Surge 的配置文件中指定域名和子域名,方便在多个项目之间切换。
{ "host": "yourdomain.com", "domain": "www.yourdomain.com" } - 端口设置:如果需要绑定特定端口,可以在配置文件中设置。
{ "port": 800 } - SSL 证书:可以通过 Surge 管理 SSL 证书,自动为你的站点生成 Let's Encrypt 证书。
{ "ssl": true }
示例配置
以下是一个完整的 Surge 配置示例,用于配置多个规则:
{
"version": "3.x.x",
"host": "yourdomain.com",
"domain": "www.yourdomain.com",
"port": 800,
"cache": {
"maxAge": "31536000",
"level": 3
},
"rules": [
{
"source": "/",
"targets": ["/index.html"],
"condition": "^(GET|HEAD) /"
},
{
"source": "/images/*",
"targets": ["/images/**"],
"condition": "GET,HEAD"
},
{
"source": "/api/*",
"targets": ["/api/**"],
"condition": "GET,HEAD"
},
{
"source": "/404",
"targets": ["404"],
"condition": "404"
}
],
"ssl": true
}
注意事项
- 默认规则:Surge 已经内置了一些默认规则,可以满足大部分常见需求。
- 自定义规则:如果需要更复杂的路由规则,可以通过手动定义
rules数组来实现。 - 避免重定向循环:在自定义规则时,确保不会出现循环重定向,否则会导致页面无法正常加载。
希望这些配置规则对你有所帮助!如果有更多具体问题,可以参考 Surge 的官方文档或社区。




