我需要配置我的反向代理,以便在 url 的末尾添加以下参数: &locale=de-de
这几乎有效:
rewrite ^(.*)$ $1&locale=de-de break;
但是,问题是我需要附加 '&locale=de-de'仅当它不存在并且有 '?'时才需要附加。在网址中...
我可以在制定正确的正则表达式方面获得一些帮助吗?
另一个问题:如果我使用这个,为什么我的 url 中的问号不显示:
$uri?$args
或者 $uri$is_args$args 翻译未编码的 url,问号显示为 %3f。
想法?
编辑:与proxy_pass 结合使用时,似乎存在此行为。在简单的重写中,它工作得非常好。
Ale*_*rov 19
rewrite您只匹配 URL 的路径部分。这意味着,$1将不包含查询字符串。所以,写应该是安全的
rewrite ^(.*)$ $1?locale=de-de break;
Run Code Online (Sandbox Code Playgroud)
如果您不希望 Nginx 附加原始查询字符串,只需?在替换 URL 的末尾指定:
rewrite ^(.*)$ $1?locale=de-de? break;
Run Code Online (Sandbox Code Playgroud)
的匹配rewrite不包括查询参数,因此您需要在其他地方进行测试。
尝试:
if ($args !~* locale=de\-de){
rewrite ^(.*)$ $1&locale=de-de last;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
43030 次 |
| 最近记录: |