您的位置 首页 Nginx

子域的复杂nginx重写规则

我目前在我的nginx.conf中有以下(hacky)重写规则,允许动态子域重定向到一个Django实例.

set $subdomain "";
set $subdomain_root "";
set $doit "";
if ($host ~* "^(.+)\.domain\.com$") {
    set $subdomain $1;
    set $subdomain_root "/profile/$subdomain";
    set $doit TR;
}
if (!-f $request_filename) {
    set $doit "${doit}UE";
}
if ($doit = TRUE) {
    rewrite ^(.*)$$subdomain_root$1;
    break;
}

我确信有一种更有效的方法可以做到这一点,但我需要更改此规则,以便任何对* .domain.com / media / *或* .domain.com / downloads / *的请求转到domain.com/ media / *和domain.com/downloads/*.

您可以使用正则表达式服务器名称(请参阅http://nginx.org/en/docs/http/server_names.html#regex_names)并直接将匹配组分配给变量$subdomain:

server {
  listen 80;
  listen 443;
  server_name ~^(?

关于作者: dawei

【声明】:金华站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

热门文章

声明: 本站文章均来自互联网,版权归原创人所有,如果侵犯了你的权益,请联系站长,我们会及时删除相关内容。

Copygight © 2016-2024 https://www.0579zz.cn All Rights Reserved. 金华站长网

站长:pniu8212#foxmail.com(请把#换成@)