0

我正在尝试为我的 .htaccess 文件编写一个规则,检查第一个路径段是否匹配,检查最后一个段!=en,然后替换最后一个段。

例如

转变

/zh/something/somethingelse/de/

进入

/zh/something/somethingelse/zh/

如果最后一段已经是 /en/ 则不需要应用该规则。在第一个和最后一个之间可以有更多或更少的路径段。

我现在正在尝试这个

RewriteRule /zh.*/([^/]+)/(?!^en$).*$ /zh/$1/en/   [R=301,L] 

但它给了我

/zh/zh/zh/

作为结果

4

1 回答 1

0

也许更改正则表达式并添加条件以防止循环/en/

RewriteCond %{REQUEST_URI} !/en/?$
RewriteRule ^/zh[^\/]*/(.*)/[a-z]{2}/?$ /zh/$1/en/ [R=301,L]

注意:如果在 .htaccess 文件中使用它并且您使用的是 apache 2.0+,则需要从 to 中删除前导^/zh斜杠^zh

于 2012-07-04T20:40:29.007 回答