QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2885|回复: 11

目录的名字服务怎么做

[复制链接]
发表于 2004-11-27 19:55:44 | 显示全部楼层 |阅读模式
我想把http://www.xxx.com/aaa对应成http://aaa.xxx.com,
不知道怎样设置bind和apache
发表于 2004-11-27 23:00:04 | 显示全部楼层
你可以用bind里面的CNAME啊
回复

使用道具 举报

发表于 2004-11-28 23:31:29 | 显示全部楼层

Re: 目录的名字服务怎么做

[quote:019fa46b17="ajinn"]我想把http://www.xxx.com/aaa对应成http://aaa.xxx.com,
不知道怎样设置bind和apache[/quote]
是指访问 http://aaa.xxx.com 的时候转到 http://www.xxx.com/aaa 还是相反?
bind 就是设置各名称指向同一地址了,或者用星号来作通配;
Apache 要设置虚拟主机,并利用 mod_rewrite 来改写请求。
回复

使用道具 举报

 楼主| 发表于 2004-11-29 08:51:37 | 显示全部楼层
是指访问 http://aaa.xxx.com 的时候转到 http://www.xxx.com/aaa
虚拟主机这部分请详解,
偶是一块网卡,
回复

使用道具 举报

发表于 2004-11-29 10:35:50 | 显示全部楼层
好象用别名就可以了啊,我是菜鸟,说错了不要怪我啊!
回复

使用道具 举报

发表于 2004-11-30 13:25:05 | 显示全部楼层
[code:1]<VirtualHost *>
  ServerName www.xxx.com
  ServerAlias *.xxx.com

  RewriteEngine On
  RewriteCond %{HTTP_HOST} (.*).xxx.com
  RewriteRule ^/(.*) http://www.xxx.com/%1$1
</VirtualHost>[/code:1]
回复

使用道具 举报

发表于 2004-11-30 13:34:44 | 显示全部楼层
哦,对了,解释一下:
[code:1]<VirtualHost *>
  ServerName www.xxx.com
  ServerAlias *.xxx.com

  # 开启 rewrite 机制
  RewriteEngine On

  # 要匹配的部分只是基本的主机名,也就是 aaa.xxx.com 的 aaa
  RewriteCond %{HTTP_HOST} (.*).xxx.com

  # 这时 %1 这个变量的内容就是 aaa 了
  # 变量 $1 是 HTTP 请求内容部分
  # 把对 http://aaa.xxx.com/path/page 的访问改成 http://www.xxx.com/aaa/path/page
  RewriteRule ^/(.*) http://www.xxx.com/%1$1
</VirtualHost>[/code:1]
回复

使用道具 举报

发表于 2005-5-15 21:10:44 | 显示全部楼层
<VirtualHost *>
  ServerName www.xxx.com
  ServerAlias *.xxx.com

  RewriteEngine On
  RewriteCond %{HTTP_HOST} (.*).xxx.com
  RewriteRule ^/(.*) http://www.xxx.com/%1$1
</VirtualHost>
请问斑竹, * 需要替换成具体的名字吗?
如果我开启 userdir 的话(让linux系统的每个用户都拥有个人主页),上面的配置不用写到 public_html 那一段里面吗?
回复

使用道具 举报

发表于 2005-5-16 19:28:09 | 显示全部楼层
这里的 * 就是 * ,英文半角星号,PC键盘上的 <Shift> - 8, 做通配符用。

如果用 UserDir, 上面的 RewriteRule 要改为[code:1] RewriteRule ^/(.*) http://www.xxx.com/~%1$1[/code:1]也就是要把对 http://abc.xxx.com 的访问转到 http://www.xxx.com/~abc 。
回复

使用道具 举报

发表于 2005-5-17 19:37:17 | 显示全部楼层
谢谢斑竹,我去试试~~~~~

在网上看到有如下配置:

RewriteRule ^/~([0-9A-Za-z_\-]+)(.*) /wwww/free/$1/public_html$2
<Directory /www/free/*/public_html>
DirectoryIndex index.html
</Directory>

斑竹给的配置,可以把 Rewrite 那几行写到像上面的 userdir 的 directory 之前吗?
回复

使用道具 举报

发表于 2005-5-19 17:42:32 | 显示全部楼层
如果要访问http://www.xxx.com/aaa 转到http://aaa.xxx.com 具体怎么办?
回复

使用道具 举报

发表于 2005-5-19 23:06:30 | 显示全部楼层
[quote:0cf3e6757b="AlexChao"]如果要访问http://www.xxx.com/aaa 转到http://aaa.xxx.com 具体怎么办?[/quote]这个相对比较简单了,只需要配置 http://www.xxx.com 的重写规则如下:[code:1]RewriteEngine On
RewriteRule ^([^/]+)/(.*) http://$1.xxx.com/$2 [L]
RewriteRule ^([^/]+) http://$1.xxx.com[/code:1]
第二行里用 ^([^/]+) 确保匹配第一个“/”之前的部分为 $1,第一个“/”之后的部分为$2,然后转到 http://$1.xxx.com/$2。[L] 标记指明匹配的话这就是最后一条规则,不要处理下一条,否则会造成循环。
第三行会匹配不包含“/”的请求,将其直接作为$1而转到http://$1.xxx.com。
至于只输入了 http://www.xxx.com 的请求,服务器还是会返回默认页面的。

这种配置应该比较少见,我没有进行全面验证。
回复

使用道具 举报

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

本版积分规则

GMT+8, 2024-3-29 05:48 , Processed in 0.126732 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

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