为了抓住lang=en
或lang=ru
您可以这样更改这些指令:
RewriteCond %{QUERY_STRING} lang=(en|ru)
# exclude all requests starting with /wp-admin/
RewriteCond %{REQUEST_URI} !^/wp-admin/
RewriteRule (.*) /%1/$1? [L,R=302]
The
(en|ru)
部件匹配
en
或
ru
周围的括号使其成为一个捕获组,可以稍后引用。
这个%1
(注意%
, 不$
) 在RewriteRule
替换是对上述捕获组的反向引用。所以%1
保留其中一个en
或ru
.
尾部.*$
于年底!^/wp-admin/.*$
是多余的。正如^
上的前缀RewriteRule
图案(.*)
- 因为默认情况下regex是贪婪的。
首先使用302(临时)重定向进行测试,只有在确定其正常工作时才更改为301(永久),以避免缓存问题。