IIS重写问题-捕获所有.php文件

IIS重写问题-捕获所有.php文件,iis,url-rewriting,web-config,rewrite,Iis,Url Rewriting,Web Config,Rewrite,在一个文件夹中,我有几个.php文件(超过10个) 我试图实现的是正确地重新编写它们,以便有友好的URL。重写内容如下: www.domain.com/data -> www.domain.com/data/index.php www.domain.com/data/ -> www.domain.com/data/index.php www.domain.com/data/aaa -> www.domain.com/data/aaa.php www.domain.com/dat

在一个文件夹中,我有几个.php文件(超过10个)

我试图实现的是正确地重新编写它们,以便有友好的URL。重写内容如下:

www.domain.com/data -> www.domain.com/data/index.php
www.domain.com/data/ -> www.domain.com/data/index.php
www.domain.com/data/aaa -> www.domain.com/data/aaa.php
www.domain.com/data/aaa/ -> www.domain.com/data/aaa.php
www.domain.com/data/aaa/chapter1 -> www.domain.com/data/aaa.php?c=chapter1

www.domain.com/data/bbb -> www.domain.com/data/bbb.php
www.domain.com/data/bbb/ -> www.domain.com/data/bbb.php
www.domain.com/data/bbb/chapter1 -> www.domain.com/data/bbb.php?c=chapter1

...
通过使用以下规则,我实现了我想要的单个php文件


这很有效。但是,它效率不高,而且对文件夹中的每个php文件复制这些规则时容易出错

因此,我想用规则中的(.+)替换aaa,但在某些情况下不起作用


它适用于以下情况:

www.domain.com/data -> www.domain.com/data/index.php
www.domain.com/data/ -> www.domain.com/data/index.php
www.domain.com/data/aaa -> www.domain.com/data/aaa.php
www.domain.com/data/aaa/ -> www.domain.com/data/aaa.php
www.domain.com/data/aaa/chapter1 -> www.domain.com/data/aaa.php?c=chapter1
它不适用于以下情况:

www.domain.com/data -> www.domain.com/data/index.php
www.domain.com/data/ -> www.domain.com/data/index.php
www.domain.com/data/aaa -> www.domain.com/data/aaa.php
www.domain.com/data/aaa/ -> www.domain.com/data/aaa.php
www.domain.com/data/aaa/chapter1 -> www.domain.com/data/aaa.php?c=chapter1
对于这些情况,我会得到一个“未找到”。 我做错什么了吗?我怎样才能解决这个问题

IIS=7.5+

提前谢谢你。

这个怎么样

<rewrite>
   <rules>
       <rule name="Friendly1" stopProcessing="true">
           <match url="^data/([-a-zA-Z0-9]*)/[-a-zA-Z0-9]*)$" ignoreCase="true" />
           <action type="Rewrite" url="data/{R:1}.php?c={R:2}" />
        </rule>
       <rule name="Friendly2" stopProcessing="true">
           <match url="^data/([-a-zA-Z0-9][-a-zA-Z0-9]*)$" ignoreCase="true" />
           <action type="Rewrite" url="data/{R:1}.php" />
        </rule>
        <rule name="Friendly3" stopProcessing="true">
           <match url="^data(/.*)$" ignoreCase="true" />
           <action type="Rewrite" url="data/index.php" />
        </rule>
    </rules>
</rewrite>


你也能列出工作案例吗?@CyrilDurand我现在添加了它们