我在web.config上有这个代码
<rule name="Imported Rule 2" stopProcessing="true">
<match url="^(.*)$" ignoreCase="false" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
</conditions>
<action type="Rewrite" url="default.asp?q={R:1}" appendQueryString="true" />
</rule>
我希望特定目录不包含此规则。 我该怎么办?
答案 0 :(得分:14)
要排除此规则处理的特定文件夹(/contact/
,/presentation/
,/db/site/
- 这些文件夹中的任何内容),您可以再添加一个条件,如下所示:< / p>
<rule name="Imported Rule 2" stopProcessing="true">
<match url="^(.*)$" ignoreCase="false" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
<add input="{REQUEST_URI}" pattern="^/(contact|presentation|db/site)" negate="true" />
</conditions>
<action type="Rewrite" url="default.asp?q={R:1}" appendQueryString="true" />
</rule>
通过附加条件做好事是因为它易于阅读/理解这条规则是什么。
如果你对一般的正则表达式很好,那么你可能更喜欢这种方法:将这样的条件转换为匹配模式(最终你会得到相同的结果,它会更快一点......但是有点难度读取):
<rule name="Imported Rule 2" stopProcessing="true">
<match url="^(?!(?:contact|presentation|db/site)/)(.*)$" ignoreCase="false" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="default.asp?q={R:1}" appendQueryString="true" />
</rule>
答案 1 :(得分:1)
这就是我的博客目录在root和Wordpress中使用代码ignitor的方式/ blog /
博客文件夹还有原始的web.config文件,这只是该文件的第二条规则...
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="wordpress - Rule 1" stopProcessing="true">
<match url="^blog" ignoreCase="false"/>
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true"/>
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true"/>
</conditions>
<action type="Rewrite" url="/blog/index.php"/>
</rule>
<rule name="app" patternSyntax="Wildcard">
<match url="*"/>
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true"/>
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true"/>
</conditions>
<action type="Rewrite" url="index.php"/>
</rule>
</rules>
</rewrite>