为了禁止在我的网站http://domain.com/en/fr/es/
中重复多个语言文件夹重复,我设置了以下规则:
RewriteRule ^([a-z]{2}/){2,}(.*)$ /$1$2 [R=301,L]
它工作得很好但我的问题是第一个捕获的组返回es
,但我想获得第一个语言文件夹en
。我怎么能这样做?
答案 0 :(得分:1)
将您的规则更改为:
RewriteRule ^([a-z]{2}/)(?:[a-z]{2}/)+(.*)$ /$1$2 [R=302,L]
您的模式中的问题是([a-z]{2}/){2,}
与en/fr/es/
的所有内容匹配,并在捕获的群组中保留es/
。
根据我建议的正则表达式,我们将仅捕获第一个捕获组中的en/
,然后下一个非捕获组将匹配fr/es/
,从而根据需要使用$1=en/
。