通配符nginx重写



我怀疑这会很简单,但我似乎无法理解nginx重写系统。希望有人能插话帮我

很简单,我需要。。

http://example.com/?c=foo

要重写为…

http://foo.example.com


如果你在这个nginx noob上花了不少钱,请提前感谢:)
我会继续尝试,在不太可能的情况下,我会"灵光一现",我会更新它,以帮助任何有/将有类似"问题"的人。
干杯

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

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

if ( $arg_c ) {
    rewrite ^ http://$arg_c.example.com;
}

2) 复杂:如果你使用Nginx作为php-fpm、apache或其他东西之间的代理,你可以这样设置Host头:设置$new_host example.com;

if ( $arg_c) {
    set $new_host $arg_c.example.com;
}

并将其作为参数传递:

proxy_set_header   Host $new_host;

最新更新