IIS 7.0重写用于捕获具有异常的动态文件夹的规则

时间:2012-02-27 11:59:20

标签: iis-7 url-rewrite-module

我正在尝试创建一个重写规则,它可以捕获所有www.domain.com/dynamicfolder / (应该使用和不使用破折号)并将其重写为/index.php?folder= 动态文件夹,还允许使用其他参数。

问题是,应该有一些例外,其中重写规则不应用,其中请求实际应该打开/查看真实文件夹。一些保留文件夹,你可以调用它。应忽略规则的文件夹示例:“images”,“includes”和“admin”。

我现在有一个重写规则,那种工作,但它只适用于具有2个字符的动态文件夹名称。新规则不应该有任何限制,而且 - 要求很高,应该可以省略动态文件夹名称,并使其余的重写URL工作。 : - )

<rule name="Langrewrite" enabled="true">
  <match url="^([a-z]{2,2})/([_0-9a-zA-Z]+)\.html" />
  <conditions logicalGrouping="MatchAll" />
  <action type="Rewrite" url="/index.php?navItem={R:2}&amp;lang={R:1}" />
</rule>

2 个答案:

答案 0 :(得分:0)

您的问题在某些地方有点模糊,但会尝试猜测您的要求:

<rule name="DynamicFolder" stopProcessing="true">
    <match url="^(?!(?:images|includes|admin))(.+?)/" />
    <action type="Rewrite" url="/index.php?folder={R:1}" />
</rule>

答案 1 :(得分:0)

这可能正是Tomek所说的,但这就是最终结果:

            <rule name="Dynamic Folders" stopProcessing="true">
                <match url="^(?!errorPages/|files/|gfx/)([a-zA-Z-]*)/?([a-zA-Z-]*)/([_0-9a-zA-Z]*)(\.html|\.htm)?" />
                <action type="Rewrite" url="/index.php?var1={R:1}&amp;var2={R:2}&amp;var3={R:3}&amp;var4={R:4}" />
            </rule>