Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[已解决] 开启泛解析后就不能用二级域名了吗?

[复制链接]
fwc530 发表于 2011-7-17 22:58:32 | 显示全部楼层 |阅读模式
本帖最后由 fwc530 于 2011-7-18 21:24 编辑

各位大虾,
小弟最近刚买了个VPS,在测试泛解析的时候发现一个问题,理解不了,请大家帮忙分析下。先谢了!
假设域名是domain.com,然后在DNS中设置好了*以及www、uc等。服务器用的是wdcp管理系统(这个可能不是很出名,参考http://www.wdlinux.cn/wdcp),LAMP环境。其实我也用webmin测试过,都差不多。
建立一个新网站,绑定domain.com。到这一步也没有问题。
我的目标是:有个二级域名uc.domain.com当用户中心。并且还想用泛解析,即*.domain.com。
现在的问题是:如果不开启domain.com的泛解析,那么二级域名uc.domain.com可以正常使用。而如果开启domain.com的泛解析,那么二级域名uc.domain.com就会解析到domain.com。
请问这是什么原因?改怎么解决?

另外提供一个参考信息:发现建立的conf文件中,绑定的域名是调用了vhost下的【域名.conf】文件。

可能说的不是太明白……有说的不明白的可以再问我。再次谢谢各位!
376765750 发表于 2011-7-18 10:07:49 | 显示全部楼层
域名.conf  拿来瞅瞅
回复

使用道具 举报

 楼主| fwc530 发表于 2011-7-18 11:27:29 | 显示全部楼层
本帖最后由 fwc530 于 2011-7-18 11:35 编辑
376765750 发表于 2011-7-18 10:07
域名.conf  拿来瞅瞅

httpd.conf文件中最后是
  1. Include conf/vhost/*.conf
复制代码

vhost文件夹下是绑定的域名的conf,一个域名一个conf。
目前有两个lybendi.com.conf和uc.lybendi.com.conf

lybendi.com.conf中的内容:
<VirtualHost *:80>
DocumentRoot /home/lybendi.com/public_html
ServerName lybendi.com
ServerAlias www.lybendi.com *.lybendi.com
include conf/rewrite/discuzx.conf
php_admin_value open_basedir /home/lybendi.com:/tmp
    <IfModule mpm_itk_module>
      AssignUserId lybendi lybendi
    </IfModule>
</VirtualHost>
<Directory /home/lybendi.com/public_html>
    Options FollowSymLinks
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>



uc.lybendi.com.conf中的内容:

<VirtualHost *:80>
DocumentRoot /home/lybendi.com/public_html/uc
ServerName uc.lybendi.com
php_admin_value open_basedir /home/lybendi.com/public_html/uc:/tmp
</VirtualHost>
<Directory /home/lybendi.com/public_html/uc>
    Options FollowSymLinks
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

以上。请帮忙分析下。谢谢!





回复

使用道具 举报

 楼主| fwc530 发表于 2011-7-18 15:46:26 | 显示全部楼层
还是没有解决。有谁能解释一下吗?
回复

使用道具 举报

376765750 发表于 2011-7-18 18:58:46 | 显示全部楼层
<VirtualHost uc.lybendi.com:80>
回复

使用道具 举报

 楼主| fwc530 发表于 2011-7-18 21:23:39 | 显示全部楼层
376765750 发表于 2011-7-18 18:58

确实 之前都没注意到 程序设计不尽完善啊
非常感谢!
回复

使用道具 举报

湘阴东湖边上 发表于 2011-7-18 21:41:33 | 显示全部楼层
<VirtualHost *:80>
DocumentRoot /home/lybendi.com/public_html/uc
ServerName uc.lybendi.com
php_admin_value open_basedir /home/lybendi.com/public_html/uc:/tmp
</VirtualHost>
<Directory /home/lybendi.com/public_html/uc>
    Options FollowSymLinks
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

这个用的是APACHE啊..
是这样的的..
如果你没设置好二级域名
默认就解析当前服务器
当然也可能是无法访问
回复

使用道具 举报

 楼主| fwc530 发表于 2011-7-18 22:34:39 | 显示全部楼层
湘阴东湖边上 发表于 2011-7-18 21:41
DocumentRoot /home/lybendi.com/public_html/uc
ServerName uc.lybendi.com
php_admin_value open_bas ...

汗……没弄明白你的意思……
回复

使用道具 举报

 楼主| fwc530 发表于 2011-7-19 23:00:10 | 显示全部楼层
本帖最后由 fwc530 于 2011-7-19 23:03 编辑
376765750 发表于 2011-7-18 18:58

你的方法可能不太对……
那个位置好像是决定访问来源的吧?
实际测试也不成功。

经过一段时间的摸索,找到一个变通的解决方法。特写下来,希望能帮到有需要的朋友。

本人测试用的是一个VPS。在我测试过的多个面板中,Webmin、WDCP、LuManger都不能正常的实现这样一个需求:既开启一级域名的泛解析,又可以定义二级域名。而LNMP一键包可以正常实现,但是还没有研究明白它是怎么实现的。还没试过Kloxo。

最终我选的wdcp面板。在这套系统下,所有在后台建立的域名,都保存了一个以域名命名的conf文件,放在conf/vhost/下(例如lybendi.com.conf和uc.lybendi.com.conf),通过在conf/httpd.conf中添加了include vhost/*.conf来调用conf/vhost文件夹下的conf文件。
测试发现,Apache是按照conf的顺序来匹配。也就是说,lybendi.com.conf在uc.lybendi.com.conf前面,所以先匹配lybendi.com.conf中的内容。因此,如果lybendi.com开启了泛解析,那么用http://uc.lybendi.com访问时,匹配到这里就显示lybendi.com的内容了。
为验证以上理论正确,开启lybendi.com泛解析的情况下,将lybendi.com.conf更名为2.conf,将uc.lybendi.com.conf更名为1.conf。其余不变。重启Apache。使用http://lybendi.com访问,正常显示主页。使用http://uc.lybendi.com访问,正常显示uc的页面。使用http://abc.lybendi.com访问,显示主页。验证通过!

考虑到在wdcp面板中操作时的便利,真正解决问题时不改变conf/vhost文件夹下的内容,因为这里的内容都是wdcp生成的。换种方法,改动conf/httpd.conf!在该文件最后,include vhost/*.conf一条之前,添加需要的二级域名。改完之后像这样:
NameVirtualHost *:80
Include conf/httpd-wdl.conf
Include conf/default.conf
Include conf/wdcp.conf
# Add Sub Domain list
Include conf/vhost/uc.lybendi.com.conf          (注:这是二级域名对应的conf文件的链接。)
# Import Other Domain
Include conf/vhost/*.conf

====================
红色是添加的部分。这样可以保证二级域名在泛解析之前匹配!也就实现了泛解析和二级域名共存。在wdcp面板中操作时,不会改动httpd.conf文件,所以手动改动此文件也不用担心文件被破坏。

这套方案的缺点就是每一个二级域名都需要编辑conf/httpd.conf。不过需要专门定义的二级域名毕竟不多,设置DNS不也挺费事吗?所以还能接受。

=====================
以上是我自己的理解,可能有不对的地方,欢迎高手指正!如果有更好的方案也欢迎分享交流!
回复

使用道具 举报

恍嘫 发表于 2011-7-26 00:44:05 | 显示全部楼层
说实话  没想过有那么麻烦 。。不懂  学习来了。。。最近再做dz论坛  求赐教
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-9-23 03:30 , Processed in 0.173884 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表