URL 重定向规则 - 正则表达式 - 如何捕获部分 URL

URL Redirect Rule - Regex - How To Capture Part Of URL

我正在尝试编写一个重定向规则,仅当匹配区域设置时才会重定向用户:en-us、zh-tw、fr-be。如果它们与这些语言环境不匹配,规则将忽略它们。用户将被重定向到另一个只有国家代码的站点。

foo.com/en-us/bar => foo2.com/us/bar2 foo.com/zh-tw/bar => foo2.com/tw/bar2 foo.com/fr-be/bar => foo2.com/be/bar2

这是我的尝试,但我不确定如何从 $1 中提取最后两个字符:

^/?foo.com/([en-us|zh-tw|fr-be])/bar$ => http://foo2.com//bar2 ^/?foo.com/[en-(us)|zh-(tw)|fr-(be)]/bar$ => http://foo2.com//bar2

如果您知道您将采用双字符语言后跟双字符国家/地区的格式,您可以尝试:

给定 "foo.com/fr-be/bar"

^/?foo.com/(\w{2})-(\w{2})/bar$

$1 == fr $2 == 成为

尝试: ^/?foo.com/(en)-(us)|(zh)-(tw)|(fr)-(be)(/bar)$
[=11=] --> foo2.com/

已在 PHP 中测试。适用于所有测试用例并排除其他组合。