如何解决nginx将子域的根动态更改为同一级别的文件夹
我的服务器上具有以下层次结构:
/var/www/domain.tld/web
/sub
/etc/nginx/sites-available/domain.tld 中的根设置如下:
server {
root /var/www/domain.tld/web;
index index.html index.php index.htm;
...
location / {
try_files $uri $uri/ =404;
}
如何使nginx动态转发到特定文件夹,所以如果我在 / sub 中创建文件夹,例如/ var / www / domain.tld / sub / subdomain >因此,如果我发出请求http://subdomain.domain.tld,它将转发到文件夹子目录中的该文件夹吗? 因此,再次 something.domain.tld 将进入 /var/www/domain.tld/sub/something ,但进入域。 tld 将转到 /var/www/domain.tld/web
谢谢!
解决方法
首先,欢迎来到StackOverflow! :)
可能有几种方法可以实现此目的,但是我会尝试使用一个简单的map
从$my_subdir
设置一个$host
变量,然后可以在{{ 1}}。 root
变量是根据传入请求自动设置的。
在此示例中,我们使用正则表达式检查$host
是否与 subdomain.domain.tld 匹配。如果是这样,请捕获子域部分-方括号中的位-并使用它来使值“ sub / subdomain ”($host
意味着使用从正则表达式中捕获的第一件事) 。如果不匹配,则默认为“网络”。
那样,
- 当请求以
$1
之类的形式出现时,响应为http://domain.tld/foo.html
- 如果请求以
/var/www/domain.tld/web/foo.html
之类的形式出现,则响应为http://bar.domain.tld/foo.html
/var/www/domain.tld/sub/bar/foo.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。