0

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

问题是,应该有一些例外,重写规则不应该适用,请求实际上应该在真实文件夹中打开/查看。一些保留的文件夹,你可以调用它。应忽略规则的文件夹示例:“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>
4

2 回答 2

0

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

<rule name="DynamicFolder" stopProcessing="true">
    <match url="^(?!(?:images|includes|admin))(.+?)/" />
    <action type="Rewrite" url="/index.php?folder={R:1}" />
</rule>
于 2012-02-28T00:04:22.693 回答
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> 
于 2012-05-30T14:58:27.450 回答