【问题标题】:nginx redirect based on domain and amend the urlnginx基于域重定向并修改url
【发布时间】:2016-10-10 19:26:40
【问题描述】:
我有几个服务器名称,如 www.example.com example.com www.example.de example.de。如果没有参数,我想将语言修改为 URL
例如
www.example.com ---> www.example.com?language=en
example.de ---> example.de?language=de
毕业生
【问题讨论】:
标签:
redirect
nginx
url-rewriting
【解决方案1】:
您可以通过将$args 与空字符串进行比较来测试是否缺少参数。例如:
if ($args = "") {
return 301 $scheme://$host$request_uri?language=en;
}
如果您的域在不同的server 块中实现,您可以适当地自定义return 语句。
如果您需要在支持多个主机名的单个server 块中实现所有这些,您可能需要使用map 指令来计算语言参数的值。请参阅this document 了解更多信息。
这不是一个完美的解决方案,因为边缘条件www.example.com? 将导致www.example.com??language=en 看起来不太好。