nginx怎么把目录设为二级域名?

发布于 2022-09-03 00:36:39 字数 413 浏览 19 评论 0

假设域名为 domain.com,

怎么配置 nginx.conf, 实现 访问 abc.domain.com 的时候实际是 domain.com/abc的内容
(浏览器的地址仍然显示成abc.domain.com)

在网上搜的这个配置没有用:

location / { 
    set $domain default; 
    if ( $http_host ~* "^(.*)\.domain\.com$") { 
                  set $domain $1; 
    } 
    rewrite ^/(.*)    /$domain/$1 last; 
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

久隐师 2022-09-10 00:36:39

关键部分:

server
{
    listen   80;
    server_name   www.domain.com;
    root   /var/www/html;
    index  index.php index.html index.htm;

    location /abc
    {
        if ( $host !~* "abc.domain.com" )
        {
            return 404;  #防止有人访问www.domain.com/abc看到abc二级域名的页面,只允许访问abc.domain.com查看
        }
    }
}

server
{
    listen   80;
    server_name   abc.domain.com;
    root   /var/www/html/abc;
    index  index.php index.html index.htm;

    location /
    {
        #一些配置
    }
}
会傲 2022-09-10 00:36:39
location / { 
    #申明domain变量 
    set $domain default;
    #正则提取出二级域名
    if ( $http_host ~* "^(.*)\.domain\.com$") { 
        #把二级域名赋值给domain变量
        set $domain $1; 
        #设置rewrite规则,把/下的所有请求转发到http://domain.com/$domain/下。
        rewrite ^/(.*)$    http://domain.com/$domain/$1 last; 
    } 

}
是你 2022-09-10 00:36:39

另外建一个server不就行了嘛!还搞那么复杂,又是正则又是rewrite的。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文