使用urlrewrite重写对root的所有请求

时间:2011-01-31 00:12:53

标签: iis web-config rewrite url-rewriting

我想使用web.config和IIS的urlrewrite将对某个目录的所有请求重写到根目录,例如:

来自:

mydomain.com/directory/test.php

致:

mydomain.com/test.php

来自:

mydomain.com/directory/test/test.php

致:

mydomain.com/test/test.php

所有参数等也应该传递。知道如何使用web.config吗?

1 个答案:

答案 0 :(得分:0)

我有一段时间的要求,发现了这个:

  

Using Url rewrite to "delete" a folder

规则中有一个小错误,后来由海报更正了。如果链接干涸,这里有一个更正的副本(我也根据您的要求使它更通用):

<rewrite>
  <rules>   
    <rule name="RemoveDirectory" stopProcessing="true">
      <match url="^directory$|^directory/(.*)$" />
      <conditions>
      </conditions>
      <action type="Redirect" url="{R:1}" />
    </rule>
    <rule name="RewriteToFile">
      <match url="^(?!directory/)(.*)" />
      <conditions>
        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
      </conditions>
      <action type="Rewrite" url="directory/{R:1}" />
    </rule>
  </rules>
</rewrite>

只需使用您的目录名称搜索并替换directory