RewriteRule 的地址应该是不包含域名的。你可以试试:RewriteCond %{HTTP_HOST} ^www([0-9]+)\.test\.com$ 
RewriteRule ^/test.php http://www.test.com/test.php?id=%1

解决方案 »

  1.   

    重定向不过去,比如www1.test.com就转不到www.test.com那里去
      

  2.   

    %1取的是RewriteCond里的第一个匹配。没东西说明RewriteCond没匹配上。
      

  3.   

    你看apache的rewrite日志。
    看%{HTTP_HOST}是不是包含www的。一般%{HTTP_HOST}只包含test当然不行啦。
      

  4.   

    那这段代码正确应该写在test.com 的虚拟主机下没错吧?
    应该不是写在www.test.com 里面吧
      

  5.   

    我刚测试了一下
    RewriteCond %{HTTP_HOST} ^www(\d+)\.test\.com$ 
    RewriteRule ^/test.php http://www.test.com/test.php?id=%1完全正确跳转。没有你说的问题。
      

  6.   

    代码写在test.com下。 test.com的虚拟主机必须放在 www.test.com的前面。你没放错吧。
      

  7.   

    我已经测过可以了。你还是写个最简单的跳转测一下能不能跳吧。没准你的rewrite就没装好。