apache 重写问题请教

apache 重写问题请教

要求:
     用户在url输入:  http://abc_username.web.test.cn      (其中abc_username是用户ID,会变的)
       然后url显示改变为:    http://web.test.cn/web/abc_username
       而实际访问到的页面是  web.test.cn/web/index.php?username=abc_username(这个不显示在url上)
      文件物理路径:/home/www/web.test.cn/web/index.php

      域名解析是做的:*.web.test.cn

      虚拟主机:怎么做?  apache 重写怎么做?
    不知我是否说明白  请教高手帮帮忙  多谢了
http://man.chinaunix.net/newsoft ... ew/vhosts/mass.html

使用mod_rewrite的个人主页系统


QUOTE:
原帖由 hahamimi 于 2007-7-3 19:05 发表
要求:
     用户在url输入:  http://abc_username.web.test.cn      (其中abc_username是用户ID,会变的)
       然后url显示改变为:    http://web.test.cn/web/abc_username
       而实际访问到的页面 ...

解释一下这样做的目的是什么,干嘛url显示改变得url显示改变为:    http://web.test.cn/web/abc_username
       和实际访问到的页面要不相同?为了安全考虑吗?
这样应该就可以了:

RewriteEngine ON
RewriteCond %{SERVER_NAME} ^[a-z0-9\-]+\.web\.test\.cn$ [NC]
RewriteRule ^/*$ /%{SERVER_NAME}
RewriteCond %{SERVER_NAME} ^[a-z0-9\-]+\.web\.test\.cn$ [NC]
RewriteRule ^/([a-z0-9\-]+)\.web\.test\.cn/?$ http://web.test.cn/web/$1 [NC,R,L]
RewriteRule ^/web/([a-z0-9\-]+)/?$ /web/index.php?username=$1 [NC,L]


没经过测试,应该没问题的。另外域名不允许“_”,允许“-”。


QUOTE:
原帖由 tommy2004 于 2007-7-5 10:16 发表



      解释一下这样做的目的是什么,干嘛url显示改变得url显示改变为:    http://web.test.cn/web/abc_username
       和实际访问到的页面要不相同?为了安全考虑吗?

对搜索引擎友好