通配符nginx重写

通配符nginx重写,nginx,subdomain,rewrite,wildcard,Nginx,Subdomain,Rewrite,Wildcard,我怀疑这将是非常简单的,但我似乎无法了解nginx重写系统。希望有人能插话帮助我? 很简单,我需要 http://example.com/?c=foo http://example.com/?c=foo 被改写成 http://foo.example.com http://foo.example.com 如果您在本nginx noob上与pitty合作,请提前感谢:) 我会继续尝试,万一我遇到“尤里卡”问题,我会更新它,以帮助任何有/将有类似“问题”的人。 干杯。实际上,在Nginx中不可

我怀疑这将是非常简单的,但我似乎无法了解nginx重写系统。希望有人能插话帮助我?

很简单,我需要

http://example.com/?c=foo http://example.com/?c=foo 被改写成

http://foo.example.com http://foo.example.com
如果您在本nginx noob上与pitty合作,请提前感谢:)
我会继续尝试,万一我遇到“尤里卡”问题,我会更新它,以帮助任何有/将有类似“问题”的人。

干杯。

实际上,在Nginx中不可能进行内部重定向到其他域。但有两种可用的解决方案:

1) 简单:重定向到指定的地址。例如:

if ( $arg_c ) {
    rewrite ^ http://$arg_c.example.com;
}
2) 复杂:如果使用Nginx作为php-fpm、apache或其他东西之间的代理,则可以这样设置主机头:: 设置$new_host example.com

if ( $arg_c) {
    set $new_host $arg_c.example.com;
}
并将其作为参数传递:

proxy_set_header   Host $new_host;