我在这种形式的 URL 中使用开头的两个假子目录来表示区域和语言:
/gb/en/tours/lesson-observation
当开头的两个假子目录分别为 2-3 和 2-5 个字符时,此正则表达式匹配。(旁注:我不知道为什么我必须在{1,2}
这里使用而不是{2,3}
。)
/^\/.{1,2}[^\/]\/.{1,4}[^\/]\/(.*)/
当请求的 URL与模式不匹配时^/2-3chars/2-5chars/
,如何获取整个原始请求的 URL,以便我可以重定向到/gb/en$1
. (这是需要的,因为该站点的英国地区和英语版本是默认的,如果在请求的 URL 中找不到地区和语言代码,则应使用该版本。)
例子:
/page-name
is not matched by the /2-3/2-5 pattern and so should be redirected to:
/gb/en/page-name
/ca/fr/page-name
is matched by the /2-3/2-5 pattern and so should not be redirected