当前位置: 首页 > 编程笔记 >

Nginx批量添加二级子域名完美方案

利博远
2023-03-14
本文向大家介绍Nginx批量添加二级子域名完美方案,包括了Nginx批量添加二级子域名完美方案的使用技巧和注意事项,需要的朋友参考一下

对于批量添加虚拟主机的需求,Apache 有 vhost_alias 模块帮忙。Nginx 呢?其实神马都不需要,同样可以实现 Nginx 二级域名匹配子文件夹,且不匹配 "www",但可以匹配包含 "www" 的子域名。

首先看看目前网上搜到的方法。


if ( $host ~* (.*)\.(.*)\.(.*)) {

 set $subdomain $1;

}

location / {

 root  html/$subdomain;

 index index.html index.php;

}


上面的 "~*" 表示不区分大小写,然后就是匹配任何 "xxx.xxx.xxx" 类型的网址,最后就悲剧了,不仅匹配了 "www.yourdomian.com" 甚至连 "我艹.$!@.com" 这类网址也匹配了。

嗯,没错!这是一个正则问题。建议先阅读 《正则表达式30分钟入门教程》、《Nginx Location 指令基础》,然后往下看...

完美解决方案


if ( $host ~* (\b(?!www\b)\w+)\.\w+\.\w+ ) {

 set $subdomain /$1;

}

location / {

 root /home/wangyan/public_html$subdomain;

 index index.html index.php;

}


效果,下图可以看到,已经实现了,不匹配 "www" 但可以匹配包含 "www" 的子域名。

使用方法,请将上面代码复制到 server {} 标签中,然后重启nginx即可。

 类似资料:
  • 本文向大家介绍Android中使用二级缓存、异步加载批量加载图片完整案例,包括了Android中使用二级缓存、异步加载批量加载图片完整案例的使用技巧和注意事项,需要的朋友参考一下 一、问题描述 Android应用中经常涉及从网络中加载大量图片,为提升加载速度和效率,减少网络流量都会采用二级缓存和异步加载机制,所谓二级缓存就是通过先从内存中获取、再从文件中获取,最后才会访问网络。内存缓存(一级)本质

  • watermark.js leverages canvas pooling so canvases are reused when possible /** * Place a watermark */ function placeMark(i) { watermark(['img/shepherd.jpg', 'img/logo.png']) .image(watermark.im

  • 本文向大家介绍批处理添加多个新的域名到hosts,包括了批处理添加多个新的域名到hosts的使用技巧和注意事项,需要的朋友参考一下 要求:批处理(.bat) 添加多个新的域名到hosts,先检测是否已存在,如果已存在的域名就不添加 其他尚未存在的域名,则直接添加 google搜寻是有找到代码  如下: 不过此代码只能检测一行域名 如果要添加以下各种不同域址,如何改写代码才能检测多个的域名? 127

  • 本文向大家介绍Ajax跨域的完美解决方案,包括了Ajax跨域的完美解决方案的使用技巧和注意事项,需要的朋友参考一下 公司要做一个活动页面,在其过程中发现所有的接口,ajax请求跨域。这里对跨域做个简单介绍以及提供几种解决办法。   由于浏览器实现的同源策略的限制,XmlHttpRequest只允许请求当前源(域名、协议、端口)的资源,所以AJAX是不允许跨域的。这里提供自己常用的三种方法: 1、j

  • 主要内容:示例子域是域名的扩展名,可以转发到URL或指向主机帐户或不同服务器中的IP地址和目录。 子域功能与主域名分开。 我们可以使用子域创建网站的区域。 示例 可以在网站上创建一个名为“移动端”的博客子域,例如:除了已经存在的 www.yiibai.com/m 之外,还可以通过URL - http://m.yiibai.com 访问该移动端网站。 理论上,我们可以为每个域名添加无限的子域名。 也可以添加多个子

  • 想让用户访问test.com的时候强制跳转到www.test.com上 下面这样写不行 请问应该怎么改?