有没有办法使用正则表达式进行重定向,从 URL 中复制然后排除多个目录?

问题描述 投票:0回答:1

我创建了一个异地存储桶来存储媒体文件。我正在尝试将所有媒体库(旧)文件 URL 重定向到存储桶(新),但需要排除存储桶中不存在的一些子目录。

是否可以编写一个正则表达式规则来复制域和尾部斜杠(olddomain.com/)之后的所有信息,检查它是否有我想要排除的目录,然后将其附加到新域的尾部斜杠之后?

  • olddomain.com/files/

  • olddomain.com/files/sub1/

  • olddomain.com/files/sub2/ *(从匹配中排除)

  • olddomain.com/files/sub3/ *(从匹配中排除)

  • newdomain.com/files

  • newdomain.com/files/sub1/

提前致谢。

尝试过...

来源

^/文件/(?!sub2|sub3)(.*)

目标

newdomain.com/$1

regex http-redirect
1个回答
0
投票

从表面上看,您可能忘记了目标中的/files/。 Nginx 设置可能如下所示:

server {
    server_name olddomain.com;
    location /files/ {
        rewrite ^/files/(?!sub2|sub3)(.*)$ https://newdomain.com/files/$1 redirect;
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.