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

AMH 社区首页

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

[求助帖] [CP原创教程]解决amh面板绑定子目录域名和文件夹不对应

Captain
金牌会员
6928.40 价值分

Captain 发表于 2014-04-21 02:28:11
本帖最后由 Captain 于 2014-4-21 02:43 编辑

 
 
教程目的:amh本身有绑定子域名(二级域名)到子目录的功能,但是是匹配的,比如bbs.xxxx.com绑定bbs目录,abc.xxxx.com绑定abc目录,但是有的时候程序固定了目录无法修改,比如你想绑定bbs.xxxx.com,到forum文件夹,或者这个子目录你想绑定多个子域名(二级域名)

解决:通过修改配置文件,解决amh面板绑定子域名(二级域名)到子目录时候,子域名(二级域名)和子文件夹名不对应的问题




一、首先必须到面板里绑定域名并开启“二级域名绑定子目录”功能

绑定域名我就不截图了,可以绑定bbs.xxxx.com,abc.xxxx.com,也可以直接绑定泛域名*.xxxx.com

接下来开启“二级域名绑定子目录”功能,如下图





二、修改配置文件
可以ssh或者sftp找到/usr/local/nginx/conf/vhost这个文件夹
找到对应网站的conf文件,比如xxxx.conf,vi编辑/usr/local/nginx/conf/vhost/xxxx.conf或者用sftp软件编辑这个conf文件
增加红色的部分(作用是,当访问的域名是bbs.xxxx.com时候网站文件指向到/forum这个子目录)

引用:
server
{
listen 80;
server_name www.xxxx.com xxxx.com *.xxxx.com; #server_name end
index index.html index.htm index.php; #index end

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

if ( $host = 'bbs.xxxx.com' ){
set $subdomain "/forum";
}



root /home/wwwroot/www.xxxx.com/web$subdomain;
include rewrite/amh.conf; #rewrite end
....................以下配置文件省略


如果想绑定多个子域名(二级域名),以此类推

引用:
server
{
listen 80;
server_name www.xxxx.com xxxx.com *.xxxx.com; #server_name end
index index.html index.htm index.php; #index end

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

if ( $host = 'bbs.xxxx.com' ){
set $subdomain "/forum";
}


if ( $host = 'luntan.xxxx.com' ){
set $subdomain "/forum";
}

root /home/wwwroot/www.xxxx.com/web$subdomain;
include rewrite/amh.conf; #rewrite end
....................以下配置文件省略


三、验证生效
加好后保存退出
然后ssh执行下amh nginx restart或者到面板里重载一下nginx
看看是不是生效了
2014-04-21 02:28:11 1

amysql
创始人
16530.81 价值分

没错。这样可以直接定义绑定。
面板上同样可以操作。

安装AMRewrite模块。
在虚拟主机相应的AMRewrite规则添加:

引用:
if ( $host = 'bbs.xxxx.com' ){
set $subdomain "/forum";
}

这个就完成了。bbs二级域名绑定到forum目录。
另外不需开启“二级域名绑定子目录”,这是自动匹配绑定。
  支持 (0分)  反对 (0分)
回复  2014-04-21 12:43:45 2

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

1024
银牌会员
3159.62 价值分

支持 支持 支持
  支持 (0分)  反对 (0分)
回复  2014-04-25 15:15:55 3

X团队
铁牌会员
113.00 价值分

顶顶顶 我是新人 不懂 大家说怎么样!

强烈建议 大大 入驻 阿里云
  支持 (0分)  反对 (0分)
回复  2014-08-23 02:40:26 4

aiaiioi
铝牌会员
247.00 价值分

照做了后访问400
  支持 (0分)  反对 (0分)
回复  2014-09-04 23:39:22 5

aiaiioi
铝牌会员
247.00 价值分

为什么400 - -!!!求大神~
  支持 (0分)  反对 (0分)
回复  2014-09-04 23:40:58 6

Captain
金牌会员
6928.40 价值分

引用:
aiaiioi 发表于 2014-9-4 23:40
为什么400 - -!!!求大神~


可以加我帮你看一下
  支持 (0分)  反对 (0分)
回复  2014-09-06 11:42:39 7

天堂
铁牌会员
51.00 价值分

引用:
amysql 发表于 2014-4-21 12:43
没错。这样可以直接定义绑定。
面板上同样可以操作。



是把这个加在伪静态规则后面吗?一个网站只能用一个AMR模块啊,
昨天我这样加不行啊。
引用:
location / {
rewrite ^([^\.]*)/topic-(.+)\.html$ $1/portal.php?mod=topic&topic=$2 last;
rewrite ^([^\.]*)/article-([0-9]+)-([0-9]+)\.html$ $1/portal.php?mod=view&aid=$2&page=$3 last;
rewrite ^([^\.]*)/forum-(\w+)-([0-9]+)\.html$ $1/forum.php?mod=forumdisplay&fid=$2&page=$3 last;
rewrite ^([^\.]*)/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ $1/forum.php?mod=viewthread&tid=$2&extra=page%3D$4&page=$3 last;
rewrite ^([^\.]*)/group-([0-9]+)-([0-9]+)\.html$ $1/forum.php?mod=group&fid=$2&page=$3 last;
rewrite ^([^\.]*)/space-(username|uid)-(.+)\.html$ $1/home.php?mod=space&$2=$3 last;
rewrite ^([^\.]*)/([a-z]+)-(.+)\.html$ $1/$2.php?rewrite=$3 last;
if (!-e $request_filename) {
return 404;
}
}
if ( $host = 'img.92af.com' ){
set $subdomain "/date";
}
  支持 (0分)  反对 (0分)
回复  2014-12-11 12:02:30 8

ITbobo
铁牌会员
64.00 价值分

收藏~ 支持
  支持 (0分)  反对 (0分)
回复  2014-12-27 01:03:08 9

夜芯幽燃
铁牌会员
14.73 价值分

域名指向是成功了,但是页面内的图片、详情页等等都会出错。 支持
排查了的结果就是
1、我指向前的目录
xxxxxx.com/abc
图片目录就是
xxxxxx.com/abc/img
2、指向成功后的地址是 abc.xxxxxx.com
图片的地址就变成 abc.xxxxxx.com/abc/img 这样是出错的,但是变成这样www.xxxxxx.com/abc/img图片是正常的
所以不知道怎么搞了...
  支持 (4.73分)  反对 (0分)
回复  2015-02-07 04:13:47 10
 1 2 >  (总2页)
AMH社区列表
用户服务中心