2016-10-10 82 views
1

我有几个服务器名称,如www.example.com example.com www.example.de example.de。如果没有参数,我想修改语言的URL 例如nginx基于域名重定向并修改url

www.example.com ---> www.example.com?language=en

example.de --- > example.de?language=de

regrads

回答

0

您可以通过使用一个空字符串比较$args测试缺乏论据。例如:

if ($args = "") { 
    return 301 $scheme://$host$request_uri?language=en; 
} 

如果你有不同的server块中实现你的域,可以适当地定制return声明。

如果您需要在支持多个主机名的单个server块中实现所有这些,则可能需要使用map指令来计算language参数的值。有关更多信息,请参见this document

这不是一个完美的解决方案,因为边缘条件www.example.com?将导致www.example.com??language=en看起来不好。