特定规则的nginx重定向/重写问题

时间:2016-10-31 12:25:36

标签: nginx url-rewriting

我有一个nginx情况,我需要一些帮助。

故事:

  • 曾经有一个网站,我们称之为website.com,其网站中创建了虚拟子域名。像子域名<。strong> .website.com这样的每个网址都是动态创建的(有子域名 .website.com, anothersubdomain .website.com,< strong> someothersubdomain .website.com等)
  • 每个创建的子域都有一个内部结构,例如子域 .website.com / some / internal / structure / 子域 .website。 COM / 一些-file.html
  • 现在,所有者希望永久移动主网站内的所有子域名,例如此网站/sub-subdomain/或website.com/sub-subdomain / some / internal / structure 或website.com/sub-subdomain / some-file.html

我现在拥有的是捕获子域名并将其重定向到主网站的规则,如下所示:

indexOf()

问题是,如果我的网址类似子域 .website.com / 某些/ internal / structure / 子域 .website .com / some-file.html 以上所有代码片段都是这个www.website.com/sub-subdomain/我失去了其余的子域名结构(&#34; some / internal / structure / &#34;或&#34; some-file.html &#34;零件 - 当然没有报价)

我应该如何更改上面的代码段,以便我保留上面提到的丢失的部分?

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

好的,与此同时我提出了这个解决方案:

我已取消上面的代码段并替换为此代码

if ($http_host ~ "([^.]+).website.com") {
    set $bref_1 $1;
}

if ($bref_1 != "www") {
    return 301 http://www.website.com/sub-$bref_1$request_uri;
}