解释:
- 表示使用正则表达式匹配。
- 匹配以 开头,后跟一个或多个数字(),然后以 结尾的路径。
- 表示正则表达式中第一个捕获组的内容,即匹配到的 、 等文件名。
- 这样可以将两个 块合并成一个,更加简洁。
方案二:使用变量和
location /template-sitemap { rewrite ^/template-sitemap(d+).xml$ /sitemap/template-sitemap$1.xml break; proxy_pass https://cdn.processon.io;}
解释:
- 指令将 和 重写为 和 。
- 选项表示停止当前 块的处理,将请求传递给 指定的地址。
方案三:使用 块
map $uri $new_uri { ~^/template-sitemap1.xml$ https://cdn.processon.io/sitemap/template-sitemap1.xml; ~^/template-sitemap2.xml$ https://cdn.processon.io/sitemap/template-sitemap2.xml;}
server { location ~ ^/template-sitemapd+.xml$ { proxy_pass $new_uri; }}
解释:
- 块定义了一个变量 ,根据 的不同值映射到不同的目标地址。
- 在 块中,使用正则表达式匹配 ,并通过 指令使用 变量来代理请求。
- 方案一 适合只有少量相似路径需要代理的情况,简单直接。
- 方案二 可以处理更多复杂的重写规则,灵活性较高。
- 方案三 对于更多的路径映射,可以通过 块更清晰地管理映射关系。