怎么实现?
二级域名重写
要求是 
1.www.site.com/ccc都重写到www.site.com/index.php/ccc2.ccc.site.com重写到ccc.site.com/index.php/ccc我如下写的 1实现了 但是2怎么都有问题。不知道怎么办 求助
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <clear />
                <rule name="重写规则1 对于 域名泛解析" stopProcessing="true">
                    <match url=".*" />
                    <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                        <add input="{HTTP_HOST}" pattern="([^.www]+)\.site\.com" />
                    </conditions>
                    <action type="Rewrite" url="index.php/{C:1}" appendQueryString="true" logRewrittenUrl="true" />
                </rule>
                <rule name="Imported Rule 1">
                    <match url="(.*)$" ignoreCase="false" />
                    <conditions logicalGrouping="MatchAny" trackAllCaptures="false">
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                    </conditions>
                    <action type="Rewrite" url="index.php/{R:1}" appendQueryString="true" logRewrittenUrl="true" />
                </rule>
            </rules>
            <rewriteMaps>
                <rewriteMap name="域名泛解析" />
            </rewriteMaps>
        </rewrite>
        <caching>
            <profiles>
                <remove extension=".html" />
                <add extension=".html" policy="DisableCache" kernelCachePolicy="DontCache" duration="00:00:30" />
            </profiles>
        </caching>
    </system.webSer

解决方案 »

  1.   

    我记录了重写的日志 发觉重写是成功 重写后的url在日志中看到到 
    是对的 但是页面却偏偏只是主页的地址
    这个到底是为什么啊?
      

  2.   

    ccc.site.com 重写成 index.php/ccc,就是显示index.php这个页面吧,有什么不对的地方?
      

  3.   

    不是的/index.php/ccc其实显示的是ccc这个栏目的内容 
    但是我这样写却显示的却是主页的内容
      

  4.   

    正则好像不太正确,改成这样好些,不过你那样写也能通过:
     <add input="{HTTP_HOST}" pattern="^(?!www)(.*)\.site\.com$" />
      

  5.   

    ccc这个栏目怎么在index.php下面?不懂
    是index.php根据参数动态显示ccc这个栏目?还是网站上有index.php/ccc这个目录?
      

  6.   

    那你暂时禁用rewrite,直接输入:ccc.site.com/index.php/ccc
    看到的效果是一样的嘛?
      

  7.   

    实际情况是
    index.php?/ccc程序会根据这个地址加载ccc的内容
      

  8.   

    那你是不是应该重写成index.php?/ccc, 而不是index.php/ccc,
    这两个地址是有区别的
      

  9.   

    如果你确定直接输入的地址和重写地址一样,都是:ccc.site.com/index.php/ccc
    但是看到的效果不同,那就有可能是php程序的问题,它可能直接去读取了重写前的原始URL。
    不过这种可能性不大,你确定重写后的地址直接粘贴到地址栏就可以看到不同的效果?
      

  10.   

    你的泛解析规则和针对www.site.com的规则看上去很容易混淆,你先把“Imported Rule 1”去掉试试
      

  11.   

    按照php的程序(fastcgi)原理是不可能的即使是。net最后结果地址 也是iis发给他的啊
      

  12.   

    不行就没办法了,想不出其它的,最多看看php里面有没有什么特殊代码
      

  13.   

    php不懂,你贴到php版问下吧,重写后的url和直接在地址栏输入的url对程序有什么影响
      

  14.   

    死了这条心吧。换apache是最好的选择。以前做过。iis太衰了,复杂的根本不行。
      

  15.   

    悲剧的是 
    这个服务器 上面与asp网站啊
    没法只能用iis  想加个apache 然后转发 我又觉得两个服务器 有点麻烦 唉!
      

  16.   

    url重写不会改变浏览器地址栏的内容看了半天,也没有看到你的需求是什么,只看到了 PATH_INFO
      

  17.   


    1.www.site.com/ccc都重写到www.site.com/index.php/ccc2.ccc.site.com重写到ccc.site.com/index.php/ccc意思说 www.site.com/ccc实际访问的是 www.site.com/index.php/ccc
    ccc.site.com实际访问的是ccc.site.com/index.php/ccc