正则表达式将所有流量重定向到新路径,但以指定字符串结尾除外
Regex to redirect all traffic to new path except ending with specified string
我正在尝试将所有流量从 wwww.mydomain.com/site/
重定向到 wwww.mydomain.com
,但最后包含 /events/
的 URL 除外。我现在正在使用以下正则表达式来满足大多数情况:
资料来源:^/cra/(?!events)(.*)
目标:/
它会重定向所有流量,但包含 events
as string in URL 的流量除外,但此正则表达式的问题是,它不会将 wwww.mydomain.com/site/events/myevent
重定向到 wwww.mydomain.com/events/myevent
我也找不到可以解决提到的用例的东西,如果有人能帮助我,那就太好了。
如果我对你的问题的理解正确,你想重定向来自
的所有内容
/site/*
到
/
但是:如果它包含
/events/
最后:完全不要重定向
如果这就是您想要做的,那么这应该可行。
^(?!.*(events\/\Z))(\/site\/)(.*)
使用 $3 访问重定向后要保留的部分。
提示:regex101 是一个非常好的网站,可以用来理解和使用正则表达式。
请注意,这仅在“事件/”部分有尾随“/”的情况下有效。但我想你可以在那里工作。
编辑: 根据 Zohaib 的评论进行了调整
我正在尝试将所有流量从 wwww.mydomain.com/site/
重定向到 wwww.mydomain.com
,但最后包含 /events/
的 URL 除外。我现在正在使用以下正则表达式来满足大多数情况:
资料来源:^/cra/(?!events)(.*)
目标:/
它会重定向所有流量,但包含 events
as string in URL 的流量除外,但此正则表达式的问题是,它不会将 wwww.mydomain.com/site/events/myevent
重定向到 wwww.mydomain.com/events/myevent
我也找不到可以解决提到的用例的东西,如果有人能帮助我,那就太好了。
如果我对你的问题的理解正确,你想重定向来自
的所有内容/site/*
到
/
但是:如果它包含
/events/
最后:完全不要重定向
如果这就是您想要做的,那么这应该可行。
^(?!.*(events\/\Z))(\/site\/)(.*)
使用 $3 访问重定向后要保留的部分。
提示:regex101 是一个非常好的网站,可以用来理解和使用正则表达式。
请注意,这仅在“事件/”部分有尾随“/”的情况下有效。但我想你可以在那里工作。
编辑: 根据 Zohaib 的评论进行了调整