首页 > 解决方案 > nginx - 将 URL 参数重写为路径

问题描述

因此,在从使用 URL 参数指定站点语言更改为使用路径后,我们遇到了 WPML 的 SEO 问题。Web 服务器正在运行 nginx。

前:

example.com/?lang=fr

example.com/example-path/?lang=fr

后:

example.com/fr/

example.com/fr/example-path/

所以我要做的是将遵循旧 URL 格式的任何 URL 重定向,包括根 / 到新格式。此过程应剥离 URL 中的所有 URI 参数,并将其替换为相应的路径。

我联系了 WPML 的人,他们不知道该怎么做。

我尝试了两种不同的方法:

location = / {
   if ($args ~ "^lang=(fr)") {
        set $key1 $1;
        rewrite ^.*$  /fr last;
        }
}

也:

rewrite ^/.*\?lang\=fr$ /index.php? permanent;

但不幸的是,据我所知,这些似乎都没有做任何事情。我真的很熟悉正则表达式,但由于某种原因,我很难使用这些 nginx 重写。

令我惊讶的是,nginx 文档和谷歌上关于重写 URL 参数的示例很少。关于如何做到这一点的任何想法?

谢谢!

标签: nginxurl-rewriting

解决方案


推荐阅读