nginx - 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 参数的示例很少。关于如何做到这一点的任何想法?
谢谢!
解决方案
推荐阅读
- php - 将 Blade 片段从一个 Laravel 包推送到另一个“父”包
- swift - How to start AVAudioPlayer without loading full buffer?
- ibm-watson - 我可以在 Watson Assistant 中使用什么表达式来表示特定日期的营业时间?
- reactjs - React Laravel - 文件显示状态但不在控制器中
- r - 将辅助轴从 0 设置为 1
- excel - 在选择案例中使用变量作为案例
- sql - SQL Oracle - 如果不满足某个条件,则将记录插入同一个表中
- .net - 在不相关的项目之间共享 ANTLR 语法
- javascript - 根据 Gatsby JS 中同一页面上的类别对文章进行分组
- sql - 如果任何列返回匹配项,则在将记录分组在一起的多个列上使用 Group BY 或 PARTITION