为了抓住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(永久),以避免缓存问题。