产品服务AMH 免费服务器主机面板SSL证书 免费SSL证书申请 担保单 免费安全、零费率交易平台编程助手免费智能写代码、翻译AMYSQL 免费MySQL管理工具

AMH 社区首页

 AMH社区 - 开放自由有价值的社区

[求助帖] Nginx完美解决二级域名绑定到子目录方案 (支持N级、多后缀)

amysql
创始人
16530.81 价值分

amysql 发表于 2013-08-26 12:17:34
1、匹配版本一
amh3.2之前版本使用的方法:

if ( $host ~* "(.+)\.(.+)\.(.+)" )
{
set $domain $1;
}


存在问题:
1、不能匹配二级以上的域名,如:
my.bbs.amysql.com
2、不可匹配多后缀的顶级域名,如:
bbs.amysql.com.cn
3、匹配到www二级域名,需再次判断是否为www,如:
www.amysql.com




2、匹配版本
改进版本,不匹配www二级域名,但同样存在第一版本的1、2点的问题。

if ( $host ~* (\b(?!www\b)\w+)\.\w+\.\w+ ) {
set $subdomain $1;
}




2、匹配版本
相对完美版本,解决上以存在的问题,来自AMH 4.0新版本。

if ( $host ~* "(?:(\w+\.){0,})(\b(?!www\b)\w+)\.\b(?!(com|org|gov|net|cn)\b)\w+\.\w+" )
{
set $subdomain "/$2";
}


可正常匹配:
amysql.com => 无
www.amysql.com => 无
bbs.amysql.com => bbs
my.bbs.amysql.com => bbs
bbs.amysql.com.cn => bbs

完整Nginx配置:

set $subdomain '';
if ( $host ~* "(?:(\w+\.){0,})(\b(?!www\b)\w+)\.\b(?!(com|org|gov|net|cn)\b)\w+\.\w+" )
{
set $subdomain "/$2";
}
root /home/wwwroot/domain.com/web$subdomain;




以上做一总结,
其它环境有需要的用户可以参考使用。


2013-08-26 12:17:34 1

AMH面板 - 好用高效低占用、安全可靠极稳定

恶小弟
银牌会员
4539.82 价值分

没看懂...
  支持 (0分)  反对 (0分)
回复  2013-08-26 14:40:13 2

yingwu
铜牌会员
864.00 价值分

我也没看懂.. 求 举例~
  支持 (0分)  反对 (0分)
回复  2013-08-26 15:19:58 3

amysql
创始人
16530.81 价值分

例子上面都有了,这是一分享帖子。

关于二级域名绑定子目录的功能,
AMH 4.0新版本的一些细节改进的地方。
  支持 (0分)  反对 (0分)
回复  2013-08-26 18:31:04 4

wxjback
铝牌会员
386.92 价值分

说实话 每太看明白 楼主能给个

aaa.bbb.com 绑定到 yyy 子目录的例子吗?

另外 主域名 bbb.com与*.bbb.com 绑定根目录,会不会影响 aaa.bbb.com 绑定到yyy 目录呢,还是不影响?
  支持 (0分)  反对 (0分)
回复  2013-11-07 11:37:35 5

tanyuxiang
金牌会员
5420.37 价值分

引用:
wxjback 发表于 2013-11-7 11:37
说实话 每太看明白 楼主能给个

aaa.bbb.com 绑定到 yyy 子目录的例子吗?


你这样只能手动绑定
  支持 (0分)  反对 (0分)
回复  2013-11-07 14:31:40 6

amysql
创始人
16530.81 价值分

引用:
wxjback 发表于 2013-11-7 11:37
说实话 每太看明白 楼主能给个

aaa.bbb.com 绑定到 yyy 子目录的例子吗?


root /home/wwwroot/domain.com/web$subdomain;
上面再加一判断$host是否等于aaa.bbb.com,是的话
set $subdomain "/yyy";
  支持 (0分)  反对 (0分)
回复  2013-11-08 09:58:31 7

shylocker120
银牌会员
2676.29 价值分

呵呵标记
  支持 (0分)  反对 (0分)
回复  2013-11-09 08:39:42 8

ynyjyz
铁牌会员
41.00 价值分

绑定子目录成功,但为何访问静态文件正常,访问php文件就报404,楼主有这情况吗?
  支持 (0分)  反对 (0分)
回复  2014-03-20 16:40:10 9

ynyjyz
铁牌会员
41.00 价值分

绑定子目录成功,但为何访问静态文件正常,访问php文件就报404,楼主有这情况吗?
  支持 (0分)  反对 (0分)
回复  2014-03-20 16:41:57 10
 1 2 >  (总2页)
AMH社区列表
用户服务中心