You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用正则表达式重定向URL时复制并排除多个目录?

实现带指定目录排除的URL重定向正则规则

需求概述

需要将旧域名olddomain.com下的媒体文件URL重定向到新存储桶域名newdomain.com,但要排除sub2和sub3两个子目录(新存储桶无对应内容)。具体的URL匹配与转换要求如下:

旧URL示例(含需排除项)

  • olddomain.com/files/
  • olddomain.com/files/sub1/
  • olddomain.com/files/sub2/(需排除,不执行重定向)
  • olddomain.com/files/sub3/(需排除,不执行重定向)

期望的新URL结果

  • newdomain.com/files
  • newdomain.com/files/sub1/

修正后的重定向规则

你之前尝试的正则已经接近目标,但需要调整以覆盖完整场景并精准排除子目录:

1. 匹配规则(Source)

如果只处理带斜杠的/files/开头路径:

^/files/(?!sub2/|sub3/)(.*)$

如果需要同时兼容不带斜杠的/files路径:

^/files(?:/(?!sub2/|sub3/)(.*))?$

2. 目标地址(Target)

对应第一个匹配规则的目标:

newdomain.com/files/$1

对应第二个兼容无斜杠场景的目标:

newdomain.com/files$1

规则说明

  • 原正则的(?!sub2|sub3)会误匹配sub2abc这类非完整子目录的路径,加上斜杠(?!sub2/|sub3/)后,能精准排除以sub2/或sub3/为前缀的完整子目录。
  • 第二个正则通过(?:/(?!sub2/|sub3/)(.*))?$实现了路径部分的可选性,既可以匹配/files本身,也能匹配/files/sub1/这类下级路径。

验证效果

  • 触发重定向的匹配项:
    • /files/ → 转换为newdomain.com/files/
    • /files/sub1/ → 转换为newdomain.com/files/sub1/
    • /files/sub1/media.mp4 → 转换为newdomain.com/files/sub1/media.mp4
  • 自动排除的项:
    • /files/sub2/ → 不匹配规则,不执行重定向
    • /files/sub3/image.png → 不匹配规则,不执行重定向

内容的提问来源于stack exchange,提问作者saladaze

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 15:02:16