• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    nginx用正则表达式实现泛域名自动匹配目录的方法

    nginx用正则表达式实现泛域名自动匹配目录

    用nginx可以实现虚拟主机的功能,可以绑定多个网址。
    通常主域名都是写死在配置里面的,所以要增加匹配时,需要手动添加。

    基本写法

    最基本的写法是server{
    listen 80;
    server_name www.a.com;
    root /html/a;
    …
    }
    
    server{
    listen 80;
    server_name www.b.com;
    root /html/b;
    …
    }

    正则式写法

    域名绑定后,自动匹配到相应的目录中,不需要一个一个域名去写配置。
    匹配目录为:html/域名/二级域名,例如www.baidu.com会匹配到baidu.com/www目录下

    server {
     listen 80;
     # $subdomain 将匹配到二级域名级以上
     # $domain 将匹配到一级域名
     # $tld 将匹配到根节点名
     server_name ~^((?<subdomain>.*)\.)?(?<domain>[^.]+)\.(?<tld>[a-zA-Z]+)$;
    
     #如果没有$subdomain,则跳转到www
     if ($subdomain = "") {
      # set $subdomain "_";
      set $subdomain "www";
      return 301 $scheme://www.$domain.$tld$request_uri;
     }
    
     root /usr/share/nginx/html/${domain}.${tld}/${subdomain};
    }

    其他

    nginx 的匹配顺序,搜索一下有很多文章,我就不详细说了。
    因为正则表达式的匹配优先级最低,只有当其他都匹配不到时才会进行正则表达式的匹配,所以不用担心影响其他的精确匹配。

    一般人不会有那么多的域名要匹配,相反,是要屏蔽掉一些恶意的域名指向。

    但是测试的时候,为了不影响正在运行的网页,可以在hosts中添中一条ip 域名记录,用不存在的域名来测试,这时候就比较有用了。

    总结

    到此这篇关于nginx用正则表达式实现泛域名自动匹配目录的文章就介绍到这了,更多相关nginx正则表达式泛域名匹配目录内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    上一篇:linux编译kernel和svn版本冲突的解决办法
    下一篇:详解Linux获取线程的PID(TID、LWP)的几种方式
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    nginx用正则表达式实现泛域名自动匹配目录的方法 nginx,用,正则,表达式,实现,