环境:windwos   2003+IIS6 
软件:ISAPI   Rewrite   Full   3 需要的效果:   
输入:                 aaa.test.com/b.html       
实际访问的是     www.test.com/aaa/b.html     RewriteCond   Host:     (?!www\.)(.*)\.test\.com 
RewriteRule   ^(http://)(.*)(\.test\.com)/?(.*)   http://www.test.com/aaa/$2/$4   这个正则表达式,我拿ISAPI   Rewrite提供的正则测试工具测试没有问题   可是实际就是不好用。 
另外ISAPI   Rewrite软件是没有问题的,因为一些简单的其他测试没有问题。 
怀疑是正则表达式的问题,有没有高手做过类似的,帮帮忙给我看看,谢谢先!

解决方案 »

  1.   

    ...
    主要问题不在 ISAPI Rewrite ,而是你是否做了DNS泛域名解释~
    你的二级域名能否正确的指向 ISAPI Rewrite 所在站点... 
      

  2.   

    我觉得正则问题不大.
    ^(http://)\.([^\.]*)\.(test\.com)/?\.([^\.]*)
    主要原因是看你的域名是否支持泛解析.
      

  3.   

    很简单的测试方法.
    你的主域是 xxxx.com 你建了 www主机,那么有了 www.xxxx.com
    你没有建 yyy主机,即没有yyy.xxxx.com域名
    那么在浏览器输入 yyy.xxxx.com 看结果是什么,如果是提示页面没找到404错误,说明支持泛解析.如果提示的是dns出错,或域名找不到等等,那就是不支持.
      

  4.   


    string r=Regex.Replace("aaa.test.com/b.html", "(\\w+)(\\.\\w+\\.\\w+\\/)(\\w+\\.\\w+)", "www$2$1/$3");
                MessageBox.Show(r);
      

  5.   

    1.域名范解析没有问题
    我现在
    输入:            aaa.test.com
    实际访问的是      www.test.com/index.aspx?id=aaa
    已经实现,没有问题。
    参数:
    RewriteCond Host:  (?!www\.)(.*)\.test\.com
    RewriteRule (.*) /test.aspx?id=$1
    我现在要实现
    输入:              aaa.test.com/b.html               
    实际访问的是        www.test.com/aaa/b.html   正则没有什么问题,关键不知道这里的正则是怎么处理url的,现在还没有弄明白
      

  6.   

    ...
    既然你认为解析正确,ISAPI Rewrite已经处理了URL,那么把ISAPI Rewrite的日志打开不就能看到重写的结果了么~(有日志设置的么?像下面的.)
    # RewriteLog  D:\iirfLog.out
    # RewriteLogLevel 1看看错在哪,再改……
      

  7.   

    令我惊讶的是你的结果:需要的效果:       
    输入:                                   aaa.test.com/b.html               
    实际访问的是           www.test.com/aaa/b.html           RewriteCond       Host:           (?!www\.)(.*)\.test\.com   
    RewriteRule       ^(http://)(.*)(\.test\.com)/?(.*)       http://www.test.com/aaa/$2/$4  
    但实际替换后是:http://www.test.com/aaa/aaa/b.html是帖子写错了?还是犯了低级错误??     
      

  8.   

    ?楼上的你能得到http://www.test.com/aaa/aaa/b.html?
    我的确实是多写了个aaa
    RewriteRule  ^(http://)(.*)(\.test\.com)/?(.*) http://www.test.com/aaa/$2/$4  
    应该是  ^(http://)(.*)(\.test\.com)/?(.*) http://www.test.com/$2/$4  我的配置文件中是这么写的,写帖子的时候多写了个aaa你也是用的isapi_rewrite ?
      

  9.   

    有几个站用,IsapiRewrite4
    不过没用IsapiRewrite测(网站、DNS都不能随便动..),也只是用正则工具。不过以前在配置IsapiRewrite时,出错都是看日志文件,然后改过来的...
      

  10.   

    看样子用IsapiRewrite的不少,真正懂得配置的人比较少啊,不知道网上的配置文件有没有人能看懂啊。
      

  11.   

    我用的我们团队自己开发的rewrite工具.
    我的资源里有,不过要1分.你也可以直接从团队论坛上下载.很好用.
    http://bbs.devms.com/thread.20275.html
      

  12.   

    在规则最后面加上:
    #RewriteCond Host: www\.test\.com# 用以恢复重定向
      

  13.   

    RewriteCond Host: (?!www\.)(.*)\.test\.com
    #RewriteRule /$ /$1/b.html [I,L]
    这样就可以了